1

我正在使用 node.js 和 socket.io。在客户端,我写了一个这样的cookie:

var socket = io.connect('http://localhost:3000');
document.cookie="foo=bar";
socket.emit('this', { is: 'test'});

在服务器端,我需要能够从 socket.io 连接中的该 cookie 中读取,如下所示:

io.sockets.on('connection', function (socket) {
    socket.on('this', function(reqData){ 
        console.log(socket.handshake.headers); // there is no cookies here!
    });
}

首选无框架解决方案,任何帮助表示赞赏。谢谢。

更新:这个要点中你可以找到我的完整代码。

4

1 回答 1

0

在从客户端建立连接之前尝试设置 cookie:

document.cookie = "foo=bar";
var socket = io.connect('http://localhost:3000');
socket.emit('this', { is: 'test'});

是我测试过的一个最小示例。正如预期的那样,每次重新加载页面时,服务器 console.log 都是一个新的 cookie。

于 2013-10-19T08:52:44.210 回答