/signalmaster

simple socket.io server for webrtc signaling

Primary LanguageJavaScriptOtherNOASSERTION

signalmaster

A simple signaling server for clients to connect and do signaling for WebRTC.

Specifically created as a default connection point for SimpleWebRTC.js

It also supports vending STUN/TURN servers with the shared secret mechanism as described in this draft. This mechanism is implemented e.g. by rfc-5766-turn-server or by a patched version of restund.

Read more:

Running

Running the server requires a valid installation of node.js which can be installed from the nodejs.org website. After installing the package you will need to install the node dependencies.

  1. npm install async, node-uuid, redis, underscore, precommit-hook, getconfig, yetify, socket.io

  2. run the server using "node server.js"

  3. In the console you will see a message which tells you where the server is running:

                     "signal master is running at: http://localhost:8888"
    
  4. Open a web browser to the specified URL and port to ensure that the server is running properly. You should see the message

                     "Welcome to socket.io"
    

Production Environment

  • generate your ssl certs
$ ./scripts/generare-ssl-certs.sh
  • run in Production mode
$ NODE_ENV=production node server.js

Use with Express

var express = require('express')
var sockets = require('signalmaster/sockets')

var app = express()
var server = app.listen(port)
sockets(server, config) // config is the same that server.js uses

Docker

You can build this image by calling:

docker build -t signalmaster https://github.com/andyet/signalmaster.git

To run the image execute this:

docker run --name signalmaster -d -p 8888:8888 signalmaster

This will start a signal master server on port 8888 exposed on port 8888.