只有在丢失时才在WebSocket中设置cookie

时间:2017-10-22 17:34:01

标签: node.js cookies websocket

我们可以在WebSocket握手中设置cookie:Set cookie inside websocket connection但是我无法确定cookie是否已经设置:

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8088 });

wss.on("headers", onHeaders);

function onHeaders(headers) {
    console.log("onHeaders cookie: " + headers.cookie); // undefined
    headers.push('Set-Cookie: ' + cookie.serialize('client', 1));
}

在设置Cookie之前,如何查看“客户端”值是否已经可用?

1 个答案:

答案 0 :(得分:0)

在WebSocket服务器上为connection事件安装处理函数。这在收到WebSocket请求时触发,并将request对象(http.IncomingMesssage的实例)作为参数传递。您可以检查request对象的标头,以查看您的cookie是否存在于请求中。类似的东西:

wss.on('connection', onConnection);

function onConnection(websock, request) {
    console.log(request.headers);
}

虽然你当然希望做一些比打印标题更复杂的事情。