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

通过WebSockets连接到socket.io时如何发送cookie?

澹台华采
2023-03-14
问题内容

当与socket.io握手时,是否可以轻松地传递身份验证cookie?我目前必须分别进行操作,如下所示:

socket = new io.Socket(document.location.hostname);
socket.addEvent("connect", function()
{
    // Send PHP session ID, which will be used to authenticate
    var sessid = readCookie("PHPSESSID");
    this.send("{'action':'authenticate','sessionid':'"+sessid+"'}");
});

问题答案:

WebSockets确实支持cookie,因为它们是基于HTTP的,但是快速浏览Socket.IO的源代码显示不支持此内置。

因此,在这种情况下,直接使用cookie并不是可行的解决方案,而且,由于您使用的是Socket.IO,因此不能保证用户实际上会通过WebSocket进行连接。

如果连接使用Flash套接字,则很难使Flash发送浏览器的cookie而不是它自己设置的cookie,因此,即使您直接发送cookie,如果出现错误,也不会在浏览器中进行设置。烧瓶插座连接。

当前Socket.IO内置对此不支持,因此闪存套接字将失败。

您可以在本期中了解到这一点

最好的解决方案仍然是使其成为您自己的协议的一部分。



 类似资料:
  • 问题内容: 我一直在玩Socket.io,node.js和WebSockets,所有这些我都可以通过wifi连接正常工作。 但是,当我通过3G连接(例如在我的iPhone上)测试支持WebSocket的应用程序时,似乎只能回退到长时间轮询了。 使用Socket.io之前,连接失败并显示“ WebSocket连接无效或未验证原点”,然后退回长时间轮询。 我不知道WebSockets是否可以在3G上工

  • 我试图从apache反向代理后面连接到socket.io服务器。我在端口8888上运行apache。nodejs服务器运行在同一台机器的端口9096上。为了进行测试,在我的本地计算机上配置代理,如下所示: 在客户端代码中,我执行如下操作: 如何使它连接到本地主机:8888/some/path/socket.io/1?123983759 ?

  • 问题内容: 我有一个使用socket.IO的node.js应用程序。它可以在http上正常工作,但是当尝试通过https连接到套接字时,没有任何反应。 这是代码的一部分: 和功能: 客户端连接如下: 正如我说的,在http上一切正常,但是在https上连接会给我“连接被中断”。我究竟做错了什么? 问题答案: 您不能像服务器那样初始化服务器。您必须启动一个单独的https服务器,然后将socket.

  • 问题内容: 我想创建一个客户端函数,该函数可以使用客户端变量来接收和执行任意命令。我将使用socket.io从服务器发送这些函数,以发送包含匿名函数的JSON对象,这将是我的命令。它看起来像以下内容: 但是,当我尝试时,客户端接收到一个空的json对象(),然后抛出异常,因为数据不包含任何执行方法。这是怎么了? 问题答案: JSON不支持包含定义/表达式。 相反,您可以做的是使用所需的s 定义一个

  • 我正在尝试上传文件,我正在使用“角度文件上传”。正在尝试连接并将文件发送到mongodb,但它在firebug上出现此错误 网络::错误_不安全_响应 在mongodb.log日志文件中,它显示连接已完成: 2014-11-09T11:57:05.512 0400 I网络[initandlisten]连接已从xxx接受。x、 x.x:53749#2(1个连接现在打开) 2014-11-09T11:

  • 我正在尝试运行此脚本以发送电子邮件 但它会返回以下错误: 2015-03-09 21:29:37客户- 2015-03-09 21:29:37客户- 2015-03-09 21:29:37客户- 2015-03-09 21:29:37客户- 2015-03-09 21:29:37SMTP错误:密码命令失败:534-5.7.14请通过Web浏览器登录,然后重试。534-5.7.14在534了解更多信