diff --git a/README.md b/README.md
index 9fc4515..a212387 100644
--- a/README.md
+++ b/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:
-
+```html
+
+```
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?
diff --git a/bin/peerjs b/bin/peerjs
new file mode 100755
index 0000000..83ba95a
--- /dev/null
+++ b/bin/peerjs
@@ -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
+);
diff --git a/lib/server.js b/lib/server.js
index 5cf2572..9bea262 100644
--- a/lib/server.js
+++ b/lib/server.js
@@ -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 = {};
diff --git a/package.json b/package.json
index 2da52db..d926e79 100644
--- a/package.json
+++ b/package.json
@@ -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": "*"
}
}