Better configuration for WebSockets
This commit is contained in:
parent
2e18833014
commit
74bab3d6c5
|
@ -225,13 +225,12 @@ function getDefaultConfig() {
|
||||||
firstMenuNewUser : 'sshConnectedNewUser',
|
firstMenuNewUser : 'sshConnectedNewUser',
|
||||||
},
|
},
|
||||||
webSocket : {
|
webSocket : {
|
||||||
port : 8810,
|
port : 8810, // ws://
|
||||||
enabled : true, // :TODO: default to false
|
|
||||||
},
|
|
||||||
secureWebSocket : {
|
|
||||||
port : 8811,
|
|
||||||
enabled : false,
|
enabled : false,
|
||||||
}
|
securePort : 8811, // wss:// - must provide certPem and keyPem
|
||||||
|
certPem : paths.join(__dirname, './../misc/https_cert.pem'),
|
||||||
|
keyPem : paths.join(__dirname, './../misc/https_cert_key.pem'),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
contentServers : {
|
contentServers : {
|
||||||
|
|
|
@ -28,6 +28,10 @@ function WebSocketClient(ws, req, serverType) {
|
||||||
get : () => 'secure' === serverType ? true : false,
|
get : () => 'secure' === serverType ? true : false,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//
|
||||||
|
// This bridge makes accessible various calls that client sub classes
|
||||||
|
// want to access on I/O socket
|
||||||
|
//
|
||||||
this.socketBridge = new class SocketBridge extends EventEmitter {
|
this.socketBridge = new class SocketBridge extends EventEmitter {
|
||||||
constructor(ws) {
|
constructor(ws) {
|
||||||
super();
|
super();
|
||||||
|
@ -84,10 +88,12 @@ exports.getModule = class WebSocketLoginServer extends LoginServerModule {
|
||||||
// * insecure websocket (ws://)
|
// * insecure websocket (ws://)
|
||||||
// * secure (tls) websocket (wss://)
|
// * secure (tls) websocket (wss://)
|
||||||
//
|
//
|
||||||
const insecureConf = _.get(Config, 'loginServers.webSocket') || { enabled : false };
|
const config = _.get(Config, 'loginServers.webSocket') || { enabled : false };
|
||||||
const secureConf = _.get(Config, 'loginServers.secureWebSocket') || { enabled : false };
|
if(!config || true !== config.enabled || !(config.port || config.securePort)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(insecureConf.enabled) {
|
if(config.port) {
|
||||||
const httpServer = http.createServer( (req, resp) => {
|
const httpServer = http.createServer( (req, resp) => {
|
||||||
// dummy handler
|
// dummy handler
|
||||||
resp.writeHead(200);
|
resp.writeHead(200);
|
||||||
|
@ -100,10 +106,10 @@ exports.getModule = class WebSocketLoginServer extends LoginServerModule {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if(secureConf.enabled) {
|
if(config.securePort) {
|
||||||
const httpServer = https.createServer({
|
const httpServer = https.createServer({
|
||||||
key : fs.readFileSync(Config.loginServers.secureWebSocket.keyPem),
|
key : fs.readFileSync(Config.loginServers.webSocket.keyPem),
|
||||||
cert : fs.readFileSync(Config.loginServers.secureWebSocket.certPem),
|
cert : fs.readFileSync(Config.loginServers.webSocket.certPem),
|
||||||
});
|
});
|
||||||
|
|
||||||
this.secure = {
|
this.secure = {
|
||||||
|
@ -113,10 +119,6 @@ exports.getModule = class WebSocketLoginServer extends LoginServerModule {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configName(serverType) {
|
|
||||||
return 'secure' === serverType ? 'secureWebSocket' : 'webSocket';
|
|
||||||
}
|
|
||||||
|
|
||||||
listen() {
|
listen() {
|
||||||
WSS_SERVER_TYPES.forEach(serverType => {
|
WSS_SERVER_TYPES.forEach(serverType => {
|
||||||
const server = this[serverType];
|
const server = this[serverType];
|
||||||
|
@ -125,7 +127,7 @@ exports.getModule = class WebSocketLoginServer extends LoginServerModule {
|
||||||
}
|
}
|
||||||
|
|
||||||
const serverName = `${ModuleInfo.name} (${serverType})`;
|
const serverName = `${ModuleInfo.name} (${serverType})`;
|
||||||
const port = parseInt( _.get( Config, [ 'loginServers', this.configName(serverType), 'port' ] ) );
|
const port = parseInt(_.get(Config, [ 'loginServers', 'webSocket', 'secure' === serverType ? 'securePort' : 'port' ] ));
|
||||||
|
|
||||||
if(isNaN(port)) {
|
if(isNaN(port)) {
|
||||||
Log.error( { server : serverName, port : port }, 'Cannot load server (invalid port)' );
|
Log.error( { server : serverName, port : port }, 'Cannot load server (invalid port)' );
|
||||||
|
|
Loading…
Reference in New Issue