-this.websocketListen = function (ports, host, handler, key, cert) {
+this.websocketListen = function (servers, handler) {
if (kiwi.httpServers.length > 0) {
_.each(kiwi.httpServers, function (hs) {
hs.close();
kiwi.httpsServers = [];
}
- _.each(ports, function (port) {
- var hs;
- if (port.secure === true) {
- hs = https.createServer({key: fs.readFileSync(__dirname + '/' + key), cert: fs.readFileSync(__dirname + '/' + cert)}, handler);
+ _.each(servers, function (server) {
+ var hs, opts;
+ if (server.secure === true) {
+ // Start some SSL server up
+ opts = {
+ key: fs.readFileSync(__dirname + '/' + server.ssl_key),
+ cert: fs.readFileSync(__dirname + '/' + server.ssl_cert)
+ };
+
+ // Do we have an intermediate certificate?
+ if (typeof server.ssl_ca !== 'undefined') {
+ opts.ca = fs.readFileSync(__dirname + '/' + server.ssl_ca);
+ }
+
+ hs = https.createServer(opts, handler);
kiwi.io.push(ws.listen(hs, {secure: true}));
- hs.listen(port.number, host);
- console.log("Listening on %s:%d with SSL", host, port.number);
+ hs.listen(server.port, server.address);
+ console.log("Listening on %s:%d with SSL", server.address, server.port);
} else {
+ // Start some plain-text server up
hs = http.createServer(handler);
kiwi.io.push(ws.listen(hs, {secure: false}));
- hs.listen(port.number, host);
- console.log("Listening on %s:%d without SSL", host, port.number);
+ hs.listen(server.port, server.address);
+ console.log("Listening on %s:%d without SSL", server.address, server.port);
}
kiwi.httpServers.push(hs);
case 'bind_address':
case 'ssl_key':
case 'ssl_cert':
- kiwi.websocketListen(kiwi.config.ports, kiwi.config.bind_address, kiwi.httpHandler, kiwi.config.ssl_key, kiwi.config.ssl_cert);
+ kiwi.websocketListen(kiwi.config.servers, kiwi.httpHandler);
delete changes.ports;
delete changes.bind_address;
delete changes.ssl_key;
*/
this.connections = {};
this.io = [];
-this.websocketListen = function (port, host, handler, secure, key, cert) {
- return app.websocketListen(port, host, handler, secure, key, cert);
+this.websocketListen = function (servers, handler) {
+ return app.websocketListen(servers, handler);
}
this.websocketConnection = function (websocket) {
return app.websocketConnection(websocket);
// Start the server up
-this.websocketListen(this.config.ports, this.config.bind_address, this.httpHandler, this.config.ssl_key, this.config.ssl_cert);
+this.websocketListen(this.config.servers, this.httpHandler);
// Now we're listening on the network, set our UID/GIDs if required
app.changeUser();