Socket
Book a DemoInstallSign in
Socket

ssb-ws

Package Overview
Dependencies
Maintainers
19
Versions
47
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ssb-ws

websocket & http server for ssb

latest
Source
npmnpm
Version
6.2.3
Version published
Weekly downloads
251
37.91%
Maintainers
19
Weekly downloads
 
Created
Source

ssb-ws

Creates a web server for ssb clients

It is used by ssb clients, in scuttle-shell which is required for Patchfox, and in web projects like secret-islands.

Peers can replicate over ws, if a pub exposes a ws address and this enables sbot peers running in a browser (WIP).

Since ssb-ws creates a web server, it also exposes an interface that allows plugins to expose things over http. Blobs and emoji are provided via this plugin too.

usage

sbot plugins.install ssb-ws

best configured via connections config

"connections": {
  "incoming": {
    "ws": [{
      "scope": ["public", "local", "device"],
      "port": 9000,
      "transform": "shs",
      "http": true // serve http, see ws.use(handler)
    }]
  }
}

you can have more than one ws server if desired. you can also disable hosting of http handlers by setting web:false on the config item, connections.incoming.ws[N].web = false

Api

noauth

given the flexibility of multiserver, you may want to run this with noauth config locally. However this is not recommended until ssb-ws prevents dns rebinding attacks and websocket connections from locally open websites.

If used with a secure transport, that authenticates the client "transport": "shs" then this is not a problem.

ws.use(handler) - http handlers

sometimes you need to do http, but if every plugin that did that created it's own servers there would be mass panic. But never fear, with ssb-ws, you can add http handlers as connect style middleware.

Here is an example sbot plugin that adds a single route: to output the current sbot address.

require('scuttlebot')
  .use(require('ssb-ws'))
  .use({
    name: 'test123',
    version: '1.0.0',
    init: function (sbot) {
      sbot.ws.use(function (req, res, next) {
        if(req.url == '/get-address')
          res.end(sbot.getAddress('device'))
        else next()
      })
    }
  })

http hosting on a particular multiserver address can be disabled using {http:false} in the incoming multiserver config.

License

MIT

FAQs

Package last updated on 19 Jun 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts