Files
docker-airsignal/server.js
2021-05-30 00:40:54 +05:30

36 lines
1.8 KiB
JavaScript

"use strict";
var config = require("./config.json");
var http = require('http');
var https = require('https');
var ws = require('ws');
var fs = require('fs');
var wns = require('./WebsocketNetworkServer');
//setup
var httpServer = null;
var httpsServer = null;
if (config.httpConfig) {
httpServer = http.createServer();
httpServer.listen(config.httpConfig.port, '0.0.0.0', function () { console.log('Listening on ' + httpServer.address().port); });
}
if (config.httpsConfig) {
httpsServer = https.createServer({
key: fs.readFileSync(config.httpsConfig.ssl_key_file),
cert: fs.readFileSync(config.httpsConfig.ssl_cert_file)
});
httpsServer.listen(config.httpsConfig.port, '0.0.0.0', function () { console.log('Listening on ' + httpsServer.address().port); });
}
var websocketSignalingServer = new wns.WebsocketNetworkServer();
for (var _i = 0, _a = config.apps; _i < _a.length; _i++) {
var app = _a[_i];
if (httpServer) {
//perMessageDeflate: false needs to be set to false turning off the compression. if set to true
//the websocket library crashes if big messages are received (eg.128mb) no matter which payload is set!!!
var webSocket = new ws.Server({ server: httpServer, path: app.path, maxPayload: config.maxPayload, perMessageDeflate: false });
websocketSignalingServer.addSocketServer(webSocket, app);
}
if (httpsServer) {
var webSocketSecure = new ws.Server({ server: httpsServer, path: app.path, maxPayload: config.maxPayload, perMessageDeflate: false }); //problem in the typings -> setup to only accept http not https so cast to any to turn off typechecks
websocketSignalingServer.addSocketServer(webSocketSecure, app);
}
}
//# sourceMappingURL=server.js.map