Skip to content

ppacory/peerjs-server

This branch is 25 commits ahead of, 704 commits behind peers/peerjs-server:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1382da1 · Aug 1, 2019
Apr 11, 2019
Apr 11, 2019
Aug 1, 2019
Aug 1, 2019
Jul 2, 2019
Apr 1, 2019
Jul 16, 2018
Apr 1, 2019
Aug 1, 2019
Feb 8, 2013
Aug 1, 2019
Oct 23, 2014
Jun 28, 2014
Aug 1, 2019
Apr 10, 2019

Repository files navigation

Build Status

PeerServer: A server for PeerJS

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

Run PeerServer

  1. Clone app:
git clone https://github.com/peers/peerjs-server.git
  1. Install dependencies:
npm install
  1. Run the server:
$> peerjs --port 9000 --key peerjs --path /myapp

Or, create a custom server:

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

Connecting to the server from PeerJS:

<script>
    const peer = new Peer('someid', {host: 'localhost', port: 9000, path: '/myapp'});
</script>

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

const fs = require('fs');
const PeerServer = require('peer').PeerServer;

const 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. The option is passed verbatim to the expressjs trust proxy setting if it is truthy.

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

Combining with existing express app

const express = require('express');
const app = express();
const ExpressPeerServer = require('peer').ExpressPeerServer;

app.get('/', (req, res, next) => { res.send('Hello world!'); });

// =======

const server = app.listen(9000);

const options = {
    debug: true
}

const peerserver = ExpressPeerServer(server, options);

app.use('/api', peerserver);

// == OR ==

const server = require('http').createServer(app);
const peerserver = ExpressPeerServer(server, options);

app.use('/peerjs', peerserver);

server.listen(9000);

// ========

Events

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

peerserver.on('connection', (client) => { ... });

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

peerserver.on('disconnect', (client) => { ... });

Running tests

npm test

Docker

You can build this image simply by calling:

docker build -t peerjs https://github.com/ppacory/peerjs-server.git

To run the image execute this:

docker run -p 9000:9000 -d peerjs

This will start a peerjs server on port 9000 exposed on port 9000.

Problems?

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

Please post any bugs as a Github issue.

About

Server for PeerJS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 54.3%
  • JavaScript 41.4%
  • CSS 2.7%
  • Dockerfile 1.3%
  • Shell 0.3%