我知道我可以在握手期间设置cookie:
const wss = new WebSocketServer({ server,path: '/ws' }); wss.on('headers',headers => { headers.push('Set-Cookie: my-cookie=qwerty'); });
如何更改websocket连接中的cookie?
例如,我想在一些客户端消息后设置会话cookie:
ws.on('message',() => { // something like ws.setCookie('my-cookie=qwerty'); });
解决方法
收到webSocket消息后,您无法设置cookie.一旦建立了webSocket连接,它就是一个开放的TCP套接字,协议不再是http,因此没有内置的方式来交换cookie.
您可以将自己的webSocket消息发送回客户端,告知它设置cookie,然后在客户端中侦听该消息,当它收到该消息时,它可以在浏览器中设置cookie.