Как конвертировать Sec_WebSocket_Key в Sec_WebSocket_Accept? - PullRequest
0 голосов
/ 07 января 2019

Я пытался преобразовать 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);
})

В чем проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...