peer

PeerJS server component

PeerServer: A server for PeerJS

PeerServer helps broker connections between PeerJS clients. Data is not proxied through the server.

##http://peerjs.com

If you prefer to use a cloud hosted PeerServer instead of running your own, sign up for a free API key here

or

Install the library:

$> npm install peer

Run the server:

$> peerjs --port 9000 --key peerjs

Or, create a custom server:

var PeerServer = require('peer').PeerServer;
var server = PeerServer({port: 9000, path: '/myapp'});

Connecting to the server from PeerJS:

<script>
    // No API key required when not using cloud server 
    var peer = new Peer('someid', {host: 'localhost', port: 9000, path: '/myapp'});
</script> 

Using HTTPS: Simply pass in PEM-encoded certificate and key.

var fs = require('fs');
var PeerServer = require('peer').PeerServer;
 
var server = PeerServer({
  port: 9000,
  ssl: {
    key: fs.readFileSync('/path/to/your/ssl/key/here.key'),
    cert: fs.readFileSync('/path/to/your/ssl/certificate/here.crt')
  }
});

Make sure to set the proxied option, otherwise IP based limiting will fail. The option is passed verbatim to the expressjs trust proxy setting if it is truthy.

var PeerServer = require('peer').PeerServer;
var server = PeerServer({port: 9000, path: '/myapp', proxied: true});
var express = require('express');
var app = express();
var ExpressPeerServer = require('peer').ExpressPeerServer;
 
app.get('/', function(reqresnext) { res.send('Hello world!'); });
 
var server = app.listen(9000);
 
var options = {
    debug: true
}
 
app.use('/api', ExpressPeerServer(server, options));
 
// OR 
 
var server = require('http').createServer(app);
 
app.use('/peerjs', ExpressPeerServer(server, options));
 
server.listen(9000);

The 'connection' event is emitted when a peer connects to the server.

server.on('connection', function(id) { ... });

The 'disconnect' event is emitted when a peer disconnects from the server or when the peer can no longer be reached.

server.on('disconnect', function(id) { ... });

Discuss PeerJS on our Google Group: https://groups.google.com/forum/?fromgroups#!forum/peerjs

Please post any bugs as a Github issue.