From a7bc7b03d23fb52bd0037f2eb6f6617c83370fd3 Mon Sep 17 00:00:00 2001 From: afrokick Date: Thu, 11 Apr 2019 13:30:17 +0300 Subject: [PATCH] fix readme fix dc event --- README.md | 82 +++++++++++++++++++++++++++++++++++++++++++++++----- bin/peerjs | 10 ++++++- src/index.js | 2 +- 3 files changed, 84 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 854837d..8248366 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,16 @@ npm install ``` 3. Run the server: + ```bash -npm run start +$> peerjs --port 9000 --key peerjs --path /mypapp +``` + +Or, create a custom server: + +```javascript +const PeerServer = require('peer').PeerServer; +const server = PeerServer({port: 9000, path: '/myapp'}); ``` Connecting to the server from PeerJS: @@ -31,21 +39,79 @@ Connecting to the server from PeerJS: ``` -Using HTTPS: Simply pass in paths to PEM-encoded certificate and key. +Using HTTPS: Simply pass in PEM-encoded certificate and key. -```bash -node ./src/index.js --port 9000 --path /myapp --sslKeyPath /path/to/your/ssl/key/here.key --sslCertPath /path/to/your/ssl/certificate/here.crt +```javascript +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. +Make sure to set the `proxied` option, otherwise IP based limiting will fail. The option is passed verbatim to the [expressjs `trust proxy` setting](http://expressjs.com/4x/api.html#app-settings) if it is truthy. -```bash -node ./src/index.js --port 9000 --path /myapp --proxied true +```javascript +const PeerServer = require('peer').PeerServer; +const server = PeerServer({port: 9000, path: '/myapp', proxied: true}); +``` + +### Combining with existing express app + +```javascript +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. + +```javascript +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. + +```javascript +peerserver.on('disconnect', (client) => { ... }); ``` ## Running tests @@ -73,4 +139,4 @@ This will start a peerjs server on port 9000 exposed on port 9000. Discuss PeerJS on our Google Group: https://groups.google.com/forum/?fromgroups#!forum/peerjs -Please post any bugs as a Github issue. +Please post any bugs as a Github issue. \ No newline at end of file diff --git a/bin/peerjs b/bin/peerjs index 1308d14..b6ab0fb 100755 --- a/bin/peerjs +++ b/bin/peerjs @@ -85,7 +85,7 @@ if (opts.sslkey || opts.sslcert) { } const userPath = opts.path; -const server = PeerServer(opts, (server) => { +const server = PeerServer(opts, server => { var host = server.address().address; var port = server.address().port; @@ -94,3 +94,11 @@ const server = PeerServer(opts, (server) => { host, port, userPath || '/', version ); }); + +server.on('connection', client => { + console.log(`Client connected: ${client.getId()}`); +}); + +server.on('disconnect', client => { + console.log(`Client disconnected: ${client.getId()}`); +}); diff --git a/src/index.js b/src/index.js index ef267e9..0024625 100644 --- a/src/index.js +++ b/src/index.js @@ -44,7 +44,7 @@ const init = ({ app, server, options }) => { }); wss.on('close', client => { - app.emit('disconnected', client); + app.emit('disconnect', client); }); wss.on('error', error => {