Merge pull request #17 from igrigorik/master
Add bin script for simple(r) bootstrap
This commit is contained in:
commit
672853658a
46
README.md
46
README.md
@ -12,32 +12,46 @@ PeerServer helps broker connections between PeerJS clients. Data is not proxied
|
||||
|
||||
Install the library:
|
||||
|
||||
npm install peer
|
||||
```bash
|
||||
$> npm install peer
|
||||
```
|
||||
|
||||
Run the server:
|
||||
|
||||
var PeerServer = require('peer').PeerServer;
|
||||
var server = new PeerServer({ port: 9000 });
|
||||
```bash
|
||||
$> peerjs --port 9000 --key peerjs
|
||||
```
|
||||
|
||||
Or, create a custom server:
|
||||
|
||||
```javascript
|
||||
var PeerServer = require('peer').PeerServer;
|
||||
var server = new PeerServer({ port: 9000 });
|
||||
```
|
||||
|
||||
Connecting to the server from PeerJS:
|
||||
|
||||
<script>
|
||||
// No API key required when not using cloud server
|
||||
var peer = new Peer('someid', {host: 'localhost', port: 9000});
|
||||
</script>
|
||||
```html
|
||||
<script>
|
||||
// No API key required when not using cloud server
|
||||
var peer = new Peer('someid', {host: 'localhost', port: 9000});
|
||||
</script>
|
||||
```
|
||||
|
||||
Using HTTPS: Simply pass in PEM-encoded certificate and key.
|
||||
|
||||
var fs = require('fs');
|
||||
var PeerServer = require('peer').PeerServer;
|
||||
```javascript
|
||||
var fs = require('fs');
|
||||
var PeerServer = require('peer').PeerServer;
|
||||
|
||||
var server = new PeerServer({
|
||||
port: 9000,
|
||||
ssl: {
|
||||
key: fs.readFileSync('/path/to/your/ssl/key/here.key'),
|
||||
certificate: fs.readFileSync('/path/to/your/ssl/certificate/here.crt')
|
||||
}
|
||||
});
|
||||
var server = new PeerServer({
|
||||
port: 9000,
|
||||
ssl: {
|
||||
key: fs.readFileSync('/path/to/your/ssl/key/here.key'),
|
||||
certificate: fs.readFileSync('/path/to/your/ssl/certificate/here.crt')
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Problems?
|
||||
|
||||
|
71
bin/peerjs
Executable file
71
bin/peerjs
Executable file
@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var path = require('path')
|
||||
, pkg = require('../package.json')
|
||||
, fs = require('fs')
|
||||
, version = pkg.version
|
||||
, PeerServer = require('../lib/server').PeerServer
|
||||
, opts = require('optimist')
|
||||
.usage('Usage: $0')
|
||||
.options({
|
||||
debug: {
|
||||
demand: false,
|
||||
alias: 'd',
|
||||
description: 'debug',
|
||||
default: false
|
||||
},
|
||||
timeout: {
|
||||
demand: false,
|
||||
alias: 't',
|
||||
description: 'timeout (milliseconds)',
|
||||
default: 5000
|
||||
},
|
||||
ip_limit: {
|
||||
demand: false,
|
||||
alias: 'i',
|
||||
description: 'IP limit',
|
||||
default: 5000
|
||||
},
|
||||
concurrent_limit: {
|
||||
demand: false,
|
||||
alias: 'c',
|
||||
description: 'concurrent limit',
|
||||
default: 5000
|
||||
},
|
||||
key: {
|
||||
demand: false,
|
||||
alias: 'k',
|
||||
description: 'connection key',
|
||||
default: 'peerjs'
|
||||
},
|
||||
sslkey: {
|
||||
demand: false,
|
||||
description: 'path to SSL key'
|
||||
},
|
||||
sslcert: {
|
||||
demand: false,
|
||||
description: 'path to SSL certificate'
|
||||
},
|
||||
port: {
|
||||
demand: true,
|
||||
alias: 'p',
|
||||
description: 'port',
|
||||
}
|
||||
}).argv;
|
||||
|
||||
opts.version = version;
|
||||
|
||||
if (opts.sslkey && opts.sslcert) {
|
||||
opts['ssl'] = {};
|
||||
opts.ssl['key'] = fs.readFileSync(path.resolve(opts.sslkey));
|
||||
opts.ssl['certificate'] = fs.readFileSync(path.resolve(opts.sslcert));
|
||||
}
|
||||
|
||||
process.on('uncaughtException', function(e) {
|
||||
console.error('Error: ' + e);
|
||||
});
|
||||
|
||||
var server = new PeerServer(opts);
|
||||
console.log(
|
||||
"Started PeerServer, port: " + opts.port + (" (v. %s)"), version
|
||||
);
|
@ -73,7 +73,7 @@ PeerServer.prototype._initializeWSS = function() {
|
||||
socket.close();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!self._clients[key] || !self._clients[key][id]) {
|
||||
self._checkKey(key, ip, function(err) {
|
||||
if (!err) {
|
||||
@ -203,7 +203,7 @@ PeerServer.prototype._initializeHTTP = function() {
|
||||
var id = req.params.id;
|
||||
var token = req.params.token;
|
||||
var key = req.params.key;
|
||||
var ip = req.ip;
|
||||
var ip = req.connection.remoteAddress;
|
||||
|
||||
if (!self._clients[key] || !self._clients[key][id]) {
|
||||
self._checkKey(key, ip, function(err) {
|
||||
@ -307,7 +307,7 @@ PeerServer.prototype._pruneOutstanding = function() {
|
||||
var keys = Object.keys(this._outstanding);
|
||||
for (var k = 0, kk = keys.length; k < kk; k += 1) {
|
||||
var key = keys[k];
|
||||
var dsts = Object.keys(this._outstanding[key]);
|
||||
var dsts = Object.keys(this._outstanding[key]);
|
||||
for (var i = 0, ii = dsts.length; i < ii; i += 1) {
|
||||
var offers = this._outstanding[key][dsts[i]];
|
||||
var seen = {};
|
||||
|
@ -3,6 +3,7 @@
|
||||
"version": "0.1.6",
|
||||
"description": "Peer-to-peer data in browsers",
|
||||
"main": "lib/server.js",
|
||||
"bin": { "peerjs": "./bin/peerjs" },
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/peers/peerjs-server.git"
|
||||
@ -11,6 +12,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"restify": "~2.3.5",
|
||||
"ws": "~0.4.25"
|
||||
"ws": "~0.4.25",
|
||||
"optimist": "*"
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user