在websocket连接中设置cookie

时间:2016-08-28 12:57:31

标签: node.js websocket

我知道我可以在握手期间设置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');
});

1 个答案:

答案 0 :(得分:6)

您无法在收到webSocket消息时设置Cookie。一旦建立了webSocket连接,它就是一个开放的TCP套接字,协议不再是http,因此没有内置的方式来交换cookie。

您可以将自己的webSocket消息发送回客户端,告知它设置cookie然后在客户端中侦听该消息,当它收到该消息时,它可以在浏览器中设置cookie。