NodeJs连接纯websocket

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();