Нема описа

afrokick 7c23ed8351 fix warnings пре 5 година
bin dd0b60416e ref пре 5 година
dist 7c23ed8351 fix warnings пре 5 година
src 7c23ed8351 fix warnings пре 5 година
test d46628067b Merge branch 'master' into refactoring/ts пре 5 година
.eslintignore 42a626629b add eslint for ts пре 5 година
.eslintrc.json ed6379c160 update ts to 3.7.3 пре 5 година
.gitignore dd0b60416e ref пре 5 година
.gitpod.yml 8c48d6092a Update .gitpod.yml пре 5 година
.travis.yml 1e09fcfb64 ref пре 6 година
Dockerfile ecd849f246 fix docker file пре 6 година
LICENSE b8dbd1f249 license and updated package json пре 12 година
README.md 22240081ff add gitpod button пре 5 година
app.json bd101ab44f enable "Deploy to Heroku" Button пре 10 година
changelog.md 8bfd385eb0 add 0.3.0 section to changelog пре 5 година
package-lock.json ed6379c160 update ts to 3.7.3 пре 5 година
package.json ed6379c160 update ts to 3.7.3 пре 5 година
tsconfig.json 7c23ed8351 fix warnings пре 5 година

README.md

Build Status

PeerServer: A server for PeerJS

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

Open in Gitpod

https://peerjs.com

Run PeerServer

  1. Clone app:

    git clone https://github.com/peers/peerjs-server.git
    
  2. Install dependencies:

    npm install
    
  3. 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/peers/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.