Нет описания

Eden Tyler-Moss ef651a9c7e Resolved merge conflicts, updated README. 5 лет назад
.github 279d43f49b Create dockerimage.yml 5 лет назад
bin dd0b60416e ref 6 лет назад
dist 3398d65d2d refactoring index.js 5 лет назад
src ef651a9c7e Resolved merge conflicts, updated README. 5 лет назад
test ef651a9c7e Resolved merge conflicts, updated README. 5 лет назад
.eslintignore 42a626629b add eslint for ts 5 лет назад
.eslintrc.json c4f04b2ff8 add tests for WebSocketServer 5 лет назад
.gitignore dd0b60416e ref 6 лет назад
.gitpod.yml 8c48d6092a Update .gitpod.yml 5 лет назад
.travis.yml 1e09fcfb64 ref 6 лет назад
Dockerfile 2ee176e690 fix Dockerfile 5 лет назад
LICENSE b8dbd1f249 license and updated package json 12 лет назад
README.md ef651a9c7e Resolved merge conflicts, updated README. 5 лет назад
app.json bd101ab44f enable "Deploy to Heroku" Button 10 лет назад
changelog.md 8757815da9 update readme and changelog 5 лет назад
package-lock.json c4f04b2ff8 add tests for WebSocketServer 5 лет назад
package.json c4f04b2ff8 add tests for WebSocketServer 5 лет назад
tsconfig.json 7c23ed8351 fix warnings 5 лет назад

README.md

Build Status npm version Downloads

PeerServer: A server for PeerJS

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

Run your own server on Gitpod!

Open in Gitpod

https://peerjs.com

Run PeerServer

  1. Install PeerServer from npm or github:

NPM

npm install peer

github

git clone https://github.com/peers/peerjs-server.git#master
npm install
  1. Run the server:

    $> peerjs --port 9000 --key peerjs --path /myapp
    

Or, create a custom server:

$> npm install peerjs-server
import {PeerServer} from 'peerjs-server';

const server = PeerServer({port: 9000, path: '/myapp'});
  1. Check that server works: open browser with http://localhost:9000/myapp It should returns JSON with name, description and website fields.

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.

import fs from 'fs';
import {PeerServer} from 'peerjs-server';

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.

import {PeerServer} from 'peerjs-server';

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

Custom client ID generation

You can specify a custom function to use to generate client IDs.

const genRandomId = () => {
    // Original generation algorithm
    return (Math.random().toString(36) + '0000000000000000000').substr(2, 16);
}

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

Combining with existing express app

import express from 'express';
import {ExpressPeerServer} from 'peerjs-server';

const app = express();
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 ==

import http from 'http';

const server = 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 Telegram chat: https://t.me/joinchat/ENhPuhTvhm8WlIxTjQf7Og

Please post any bugs as a Github issue.