const http = require('http');
const crypto = require('crypto');
const url = require('url');
var serverUrl = url.parse('ws://localhost:6443');
var protocolVersion = 13;
var key = new Buffer(protocolVersion + '-' + Date.now()).toString('base64');
var shasum = crypto.createHash('sha1');
shasum.update(key + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11');
var expectedServerKey = shasum.digest('base64');
var headerHost = serverUrl.host;
var requestOptions = {
port : serverUrl.port,
host : serverUrl.hostname,
headers: {
'Connection' : 'Upgrade',
'Upgrade' : 'websocket',
'Host' : headerHost,
'Sec-WebSocket-Version' : protocolVersion,
'Sec-WebSocket-Key' : key,
'Sec-WebSocket-Extensions': '', // permessage-deflate; client_max_window_bits
'path' : '/'
}
};
var req = http.request(requestOptions);
req.once('upgrade', function (res, socket, upgradeHead) {
var headers = res.headers;
console.log('upgrade', headers);
socket.setTimeout(0);
socket.setNoDelay(true);
socket.on('data', function (data) {
console.log('..............', data.toString('utf8'));
});
});
req.end();