Skip to content
Snippets Groups Projects
Commit 987f7dba authored by rickparrish's avatar rickparrish
Browse files

Replace the UseBinary flag with a SubProtocol check

parent f3564872
No related branches found
No related tags found
1 merge request!330Add support for binary frames to websocket service
Pipeline #4694 passed
......@@ -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";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment