当前位置: 首页 > 面试题库 >

在Socket.IO上添加cookie值

田鹤轩
2023-03-14
问题内容

如何在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上进行会话管理,而只需在cookie中添加一个socket.io客户端ID值即可,就像connect.sid一样。


问题答案:

看看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=/";


 类似资料:
  • 根据下面的内容,我不确定如何排除这个非常简单的使用场景。 我有一个脚本(大约一个月运行一次),它在功能上做相同的事情,一个月前就开始工作了。 我将感谢任何关于开始研究为什么这不起作用的地方的建议。

  • 问题内容: 我想制作一个与串行设备(手持扫描器)通信的Java应用程序,以便该应用程序与平台无关。我找到了一些代码示例,当我将它们复制到Eclipse中时,它说缺少javax.comm。*。如何在Mac上安装它?以及如何将此库添加到我的应用程序中,以便用户无需安装任何内容? 我希望能够为用户提供一个jar文件和设备,他们应该能够在Windows / Mac / Linux上运行它而几乎不需要配置。

  • 问题内容: 我想在cookie中设置一些用户信息并能够在连接时访问它,这可能吗? 问题答案: 由于Cookie始终指向最后登录的用户,因此会导致竞争情况。 请参阅:Socket.IO身份验证 使用connect-redis并将redis用作所有经过身份验证的用户的会话存储。确保通过身份验证将密钥(通常是req.sessionID)发送给客户端。让客户端将此密钥存储在cookie中。 在套接字连接(

  • 问题内容: 对于下面的内容,我不确定如何解决这种非常简单的使用情况。 我有脚本功能上做了相同的事情,这(我跑大约每月一次) 用 工作作为一个月前。 我会很高兴有任何地方的指针开始研究为什么它不起作用。 问题答案: 您应该先打开url并加载cookie,然后再打开包含cookie的下一个URL。如果要打开相同的url,也可以像这样打开: 希望这可以帮助

  • 问题内容: 我想在调用某些API路由时向客户端发出一些数据。我必须遵循server.js上的代码 现在,我有以下路线/测试: 那个文件: 在客户端: 最好的解决方案是什么? 谢谢! Express 4 / socket.io 1.4.5 问题答案: 将实例附加到您的应用程序。 然后,您可以通过请求访问它。 如果希望将数据发送到单个客户端,则需要保留某种会话映射以将独立的http请求链接到套接字。会

  • 问题内容: 谁能告诉我如何在OSX上添加到类路径? 问题答案: 如果要使计算机上的每个Java应用程序都可以使用一组特定的JAR文件(或.class文件),那么最好的选择是将这些文件添加到中。 或者,如果你想这样做的每一个Java应用程序,但只有当 你 的Mac OS X帐户运行它们,然后使用来代替。 编辑: 如果您只想对特定的应用程序执行此操作,如Thorbjørn所要求的,那么您将需要告诉我们