server.js
const http = require('http');
const crypto = require('crypto');
const server = http.createServer(function (req,res) {
res.writeHead(200,{'Content-type':'text/plain'});
res.end('hello world');
});
server.listen(80);
server.on('upgrade',function (req,socket,upgradeHead) {
const head = new Buffer(upgradeHead.length);
upgradeHead.copy(head);
let key = req.headers['sec-websocket-key'];
let shasum = crypto.createHash('sha1');
const GUID = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'; //协议中规定的校验用GUID,这是算法中要用到的固定字符串
key = shasum.update(`${key}${GUID}`).digest('base64');
let headers = [
'HTTP/1.1 101 Web Socket Protocol Handshake',
'Upgrade: websocket',
'Connection: Upgrade',
'Sec-Websocket-Accept: '+ke