2014-10-18 13:23:09 +01:00

86 lines
2.1 KiB
JavaScript
Executable File

#!/usr/bin/env node
var path = require('path')
, pkg = require('../package.json')
, fs = require('fs')
, version = pkg.version
, app = require('express')()
, PeerServer = require('../lib')
, 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'
},
path: {
demand: false,
description: 'custom path'
},
allow_discovery: {
demand: false,
description: 'allow discovery of peers'
}
})
.boolean('allow_discovery')
.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);
});
opts.server = app.listen(opts.port);
app.use(PeerServer(opts));
console.log(
'Started PeerServer, port: ' + opts.port + ', path: ' + (opts.path || '/') + (" (v. %s)"), version
);