2016-08-28 4 views
3

Я знаю, что я могу установить печенье во время рукопожатия:Набор печенья в связи WebSocket

const wss = new WebSocketServer({ server, path: '/ws' }); 
wss.on('headers', headers => { 
    headers.push('Set-Cookie: my-cookie=qwerty'); 
}); 

Как я могу изменить печенье внутри соединения WebSocket? Например, я хочу, чтобы установить куки сессии после некоторого клиента сообщения:

ws.on('message',() => { 
    // something like ws.setCookie('my-cookie=qwerty'); 
}); 

ответ

3

Вы не можете установить куки после получения сообщения WebSocket. Как только соединение webSocket установлено, это открытый TCP-сокет, и протокол больше не является http, поэтому нет встроенного способа обмена куками.

Вы можете отправить свое собственное сообщение webSocket обратно клиенту, который сообщает ему, чтобы установить cookie, а затем прослушать это сообщение на клиенте, и когда он получит это сообщение, он может установить cookie в браузере.