Я пытался преобразовать Sec-Websocket-Key в Sec-Websocket-Accept в головке Websocket. Но в браузере возникает ошибка «Неправильное значение заголовка Sec-WebSocket-Accept».
server.on('upgrade',(req,socket,head)=>{
console.log(req.rawHeaders)
let Sec_WebSocket_Key = req.rawHeaders[23];
let key=Sec_WebSocket_Key+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
console.log(key)
// 5i8/yFWUVdGJxgjanpgoVg==258EAFA5-E914-47DA-95CA-C5AB0DC85B11
//var crypto = require('crypto')
// , shasum = crypto.createHash('sha1');
shasum.update(key)
let sha1key=shasum.digest('hex');
console.log(sha1key)
// b2e9b9525a9888131c9ebb465df12f449c986362
let Sec_WebSocket_Accept = Buffer.from(sha1key,'binary').toString('base64')
// YjJlOWI5NTI1YTk4ODgxMzFjOWViYjQ2NWRmMTJmNDQ5Yzk4NjM2Mg==
socket.write('HTTP/1.1 101 Web Socket Protocol Handshake\r\n'+
'Upgrade: WebSocket\r\n'+
'Connection: Upgrade\r\n'+
'Sec-WebSocket-Accept: '+Sec_WebSocket_Accept+'\r\n'+
'\r\n')
console.log(Sec_WebSocket_Accept)
// ZTZkZmM5NWRkMDBjMWMwNGNhM2I5ZmFjOGYyYjBmM2VmNWQ4ODBjZA==
socket.pipe(socket);
})
В чем проблема?