我知道我可以在握手期间设置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');
});
答案 0 :(得分:6)
您无法在收到webSocket消息时设置Cookie。一旦建立了webSocket连接,它就是一个开放的TCP套接字,协议不再是http,因此没有内置的方式来交换cookie。
您可以将自己的webSocket消息发送回客户端,告知它设置cookie然后在客户端中侦听该消息,当它收到该消息时,它可以在浏览器中设置cookie。