如何在Socket.IO上添加cookie值?
io.sockets.on('connection',function (client) { console.log(client.id); client.handshake.headers.cookie.socketID = client.id; // not work // client.handshake.headers.cookie("socketID",client.id); //crash console.log(client.handshake.headers.cookie); // The current output is: //connect.sid=tI21xumy3u2n4QXO1GljmPAf.pzFQ1Xu%2B6bz36secu4VSCdSNU8PT1L44gQZ4kFUFQqQ //this is express session id,and I also want to add client.id of Socket.IO. //........... }
我读过了
http://www.danielbaulig.de/socket-ioexpress/
,但我不需要在node.js上进行会话管理,但只需要在connect.sid中添加一个socket.io客户端ID值.
解决方法
使用Socket.io查看
Authorization.这是它处理初始连接请求的位置,您可以在其中设置响应标头.
我不确定cookie(名称,值)简写是否有效,但您可以尝试手动设置:
var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); // set day value to expiry var expires = "; expires="+date.toGMTString(); handshake.headers.cookie = name+"="+value+expires+"; path=/";