signalhubws

Drop in replacement for signalhub with websockets

Usage no npm install needed!

<script type="module">
  import signalhubws from 'https://cdn.skypack.dev/signalhubws';
</script>

README

Signalhubws

Build Status

Drop in replacement for signalhub with websockets.

Note: Binary is just launching server (similar to signalhub listen -p $PORT)

See https://github.com/mafintosh/signalhub

Deploy with Heroku

Deploy

Or via the CLI (after cloning this repo, from within the project root):

heroku login
heroku git:remote -a <your-app-name>
git push heroku master

API

hub = signalhubws(appName, urls, WebSocketClass)

Create a new hub client. If you have more than one hub running specify them in an array

// use more than one server for redundancy
var hub = signalhubws('my-app-name', [
  'wss://signalhub1.example.com',
  'wss://signalhub2.example.com',
  'wss://signalhub3.example.com'
])

The appName is used to namespace the subscriptions/broadcast so you can reuse the signalhub for more than one app.

The WebSocketClass allows you to override the socket class implementation. signalhubws ships with the cws package on nodejs and uses the native Websocket implementation on browsers.

stream = hub.subscribe(channel)

Subscribe to a channel on the hub. Returns a readable stream of messages

hub.broadcast(channel, message, [callback])

Broadcast a new message to a channel on the hub

hub.close([callback])

Close all subscriptions