|
@@ -1,18 +1,23 @@
|
|
var express = require('express');
|
|
var express = require('express');
|
|
var mixin = require('utils-merge');
|
|
var mixin = require('utils-merge');
|
|
var proto = require('./server');
|
|
var proto = require('./server');
|
|
|
|
+var util = require('./util');
|
|
|
|
+var http = require('http');
|
|
|
|
|
|
exports = module.exports = {
|
|
exports = module.exports = {
|
|
PeerServer: createPeerServer
|
|
PeerServer: createPeerServer
|
|
};
|
|
};
|
|
|
|
|
|
-function createPeerServer(options) {
|
|
|
|
|
|
+function createPeerServer(options, callback) {
|
|
|
|
|
|
var app = express();
|
|
var app = express();
|
|
|
|
|
|
mixin(app, proto);
|
|
mixin(app, proto);
|
|
|
|
|
|
app.options = {
|
|
app.options = {
|
|
|
|
+ host: '0.0.0.0',
|
|
|
|
+ port: null,
|
|
|
|
+ server: null,
|
|
debug: false,
|
|
debug: false,
|
|
timeout: 5000,
|
|
timeout: 5000,
|
|
key: 'peerjs',
|
|
key: 'peerjs',
|
|
@@ -46,9 +51,6 @@ function createPeerServer(options) {
|
|
// Messages waiting for another peer.
|
|
// Messages waiting for another peer.
|
|
app._outstanding = {};
|
|
app._outstanding = {};
|
|
|
|
|
|
- // Initailize WebSocket server handlers.
|
|
|
|
- app._initializeWSS();
|
|
|
|
-
|
|
|
|
// Initialize HTTP routes. This is only used for the first few milliseconds
|
|
// Initialize HTTP routes. This is only used for the first few milliseconds
|
|
// before a socket is opened for a Peer.
|
|
// before a socket is opened for a Peer.
|
|
app._initializeHTTP();
|
|
app._initializeHTTP();
|
|
@@ -58,5 +60,18 @@ function createPeerServer(options) {
|
|
|
|
|
|
app._setCleanupIntervals();
|
|
app._setCleanupIntervals();
|
|
|
|
|
|
|
|
+ app._server = options.server;
|
|
|
|
+
|
|
|
|
+ if (app.options.port) {
|
|
|
|
+ app._server = http.createServer(app);
|
|
|
|
+ app._server.listen(options.port, options.host, callback);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!app._server) {
|
|
|
|
+ throw new Error('Neither port or server is passed to constructor - can\'t start PeerServer');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ app._initializeWSS();
|
|
|
|
+
|
|
return app;
|
|
return app;
|
|
}
|
|
}
|