npm install peerjs-server
PeerServer helps broker connections between PeerJS clients. Data is not proxied through the server.
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:
``bash`
$> npm install peer
Run the server:
`bash`
$> peerjs --port 9000 --key peerjs
Or, create a custom server:
`javascript`
var PeerServer = require('peer').PeerServer;
var server = PeerServer({port: 9000, path: '/myapp'});
Connecting to the server from PeerJS:
`html`
Using HTTPS: Simply pass in PEM-encoded certificate and key.
`javascript
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')
}
});
`
#### Running PeerServer behind a reverse proxy
Make sure to set the proxied option, otherwise IP based limiting will fail.trust proxy
The option is passed verbatim to the
expressjs setting
if it is truthy.
`javascript`
var PeerServer = require('peer').PeerServer;
var server = PeerServer({port: 9000, path: '/myapp', proxied: true});
`javascript
var express = require('express');
var app = express();
var ExpressPeerServer = require('peer').ExpressPeerServer;
app.get('/', function(req, res, next) { 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.
`javascript`
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.
`javascript``
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.