Skip to content

Simple signalling server that can be used to coordinate handshaking with webrtc or other fun stuff.

License

Notifications You must be signed in to change notification settings

scenevr/signalhub

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

signalhub

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

build status

Usage

var signalhub = require('signalhub')
var hub = signalhub('my-app-name', [
  'http://yourhub.com'
])

hub.subscribe('/my-channel')
  .on('data', function (message) {
    console.log('new message received', message)
  })

hub.broadcast('/my-channel', {hello: 'world'})

API

hub = signalhub(appName, urls)

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 than one app.

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

CLI API

You can use the command line api to run a hub server

signalhub listen -p 8080 # starts a signalhub server on 8080

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

Browserify

This also works in the browser using browserify :)

License

MIT

About

Simple signalling server that can be used to coordinate handshaking with webrtc or other fun stuff.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%