在Socket.IO上添加cookie值

7 cookies node.js express socket.io

如何在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. 

//...........
}
Run Code Online (Sandbox Code Playgroud)

我已阅读 http://www.danielbaulig.de/socket-ioexpress/ ,但我不需要在node.js上进行会话管理,但只需要在connect.sid中添加一个socket.io客户端ID值.

Wes*_*son 10

看一下使用Socket.io 进行授权.这是它处理初始连接请求的位置,您可以在其中设置响应标头.

我不确定cookie(name,value)速记是否有效,但您可以尝试手动设置:

    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=/";
Run Code Online (Sandbox Code Playgroud)