我正在使用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中的更新:您可以找到我的完整代码。
答案 0 :(得分:0)
尝试在从客户端建立连接之前设置cookie:
document.cookie = "foo=bar";
var socket = io.connect('http://localhost:3000');
socket.emit('this', { is: 'test'});
Here是我测试过的最小例子。服务器console.log是一个新的cookie,每次重新加载页面,如预期的那样。