@arwel/peer-js-server
v0.3.0
Published
PeerJS server component. Fork of original peer package
Downloads
4
Readme
Fork of PeerServer: A server for PeerJS. Original -> https://github.com/peers/peerjs-server
PeerServer helps broker connections between PeerJS clients. Data is not proxied through the server.
Run your own server on Gitpod!
https://peerjs.com
Run PeerServer
- Install PeerServer from npm or github:
NPM
npm install peer
github
git clone https://github.com/peers/peerjs-server.git#master
npm install
- Run the server:
$> peerjs --port 9000 --key peerjs --path /myapp
Or, create a custom server:
const { PeerServer } = require('peer');
const server = PeerServer({port: 9000, path: '/myapp'});
- 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.
const fs = require('fs');
const { PeerServer } = require('peer');
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');
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');
app.get('/', (req, res, next) => { res.send('Hello world!'); });
// =======
const server = app.listen(9000);
const options = {
debug: true
path: '/peerjs'
}
const peerserver = ExpressPeerServer(server, options);
app.use(options.path, peerserver);
// == OR ==
const server = require('http').createServer(app);
const peerserver = ExpressPeerServer(server, options);
app.use(options.path, 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.