diff --git a/exec/websocketservice.js b/exec/websocketservice.js index edf76785280ea6276db402344c414eb69395a9bb..bc1bedf7e45e0d5f9617f1f1f767584c5abae0cf 100644 --- a/exec/websocketservice.js +++ b/exec/websocketservice.js @@ -45,7 +45,7 @@ var FServerSocket = null; var FWebSocketDataQueue = ''; var FWebSocketHeader = {}; var FWebSocketState = WEBSOCKET_NEED_PACKET_START; -var FWebSocketUseBinary = false; +var FWebSocketSubProtocol = ''; var ipFile; // Main line @@ -456,7 +456,7 @@ function SendToWebSocketClientDraft0(AData) { function SendToWebSocketClientVersion7(AData) { var ToSend = ''; - if (FWebSocketUseBinary) { + if (FWebSocketSubProtocol === 'binary') { for (var i = 0; i < AData.length; i++) { ToSend += String.fromCharCode(AData[i]); } @@ -660,16 +660,16 @@ function ShakeHandsVersion7() { "Sec-WebSocket-Accept: " + Encoded + "\r\n"; if ('SubProtocol' in FWebSocketHeader) { if (FWebSocketHeader['SubProtocol'].indexOf('binary') >= 0) { - log(LOG_DEBUG, 'Selecting "binary" SubProtocol'); - Response += "Sec-WebSocket-Protocol: binary\r\n"; - FWebSocketUseBinary = true; + FWebSocketSubProtocol = 'binary'; } else if (FWebSocketHeader['SubProtocol'].indexOf('plain') >= 0) { - log(LOG_DEBUG, 'Selecting "plain" SubProtocol'); - Response += "Sec-WebSocket-Protocol: plain\r\n"; + FWebSocketSubProtocol = 'plain'; } else { log(LOG_ERR, 'No supported SubProtocols found ("binary" and "plain" are only supported options'); return false; } + + log(LOG_DEBUG, 'Selecting "' + FWebSocketSubProtocol + '" SubProtocol'); + Response += "Sec-WebSocket-Protocol: " + FWebSocketSubProtocol + "\r\n"; } Response += "\r\n";