如何访问socket.io连接中的cookie数据?

时间:2013-10-19 07:36:59

标签: node.js sockets cookies socket.io

我正在使用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!
    });
}

首选无框架解决方案,感谢任何帮助。 感谢。

this gist中的

更新:您可以找到我的完整代码。

1 个答案:

答案 0 :(得分:0)

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

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

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