Simple signalling server that can be used to coordinate handshaking with webrtc or other fun stuff.
npm install signalhub
Or to install the command line tool
npm install -g signalhub
var signalhub = require('signalhub')
var hub = signalhub('my-app-name', [
'https://yourhub.com'
])
hub.subscribe('my-channel')
.on('data', function (message) {
console.log('new message received', message)
})
hub.broadcast('my-channel', {hello: 'world'})
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 = signalhub('my-app-name', [
'https://signalhub1.example.com',
'https://signalhub2.example.com',
'https://signalhub3.example.com'
])
The appName
is used to namespace the subscriptions/broadcast so you can reuse the
signalhub for more than one app.
Subscribe to a channel on the hub. Returns a readable stream of messages
Broadcast a new message to a channel on the hub
Close all subscriptions
You can use the command line api to run a hub server
signalhub listen -p 8080 # starts a signalhub server on 8080
To listen on https, use the --key
and --cert
flags to specify the path to the private
key and certificate files, respectively. These will be passed through to the node https
package.
To avoid logging to console on every subscribe/broadcast event use the --quiet
or -q
flag.
Or broadcast/subscribe to channels
signalhub broadcast my-app my-channel '{"hello":"world"}' -p 8080 -h yourhub.com
signalhub subscribe my-app my-channel -p 8080 -h yourhub.com
This also works in the browser using browserify :)
Through the magic of free hosting, here are some free open signalhub servers! For serious applications though, consider deploying your own instances.
No additional configuration is needed.
now mafintosh/signalhub
MIT