首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过WebSockets连接socket.io时,如何发送cookies?

通过WebSockets连接socket.io时,如何发送cookies?
EN

Stack Overflow用户
提问于 2010-11-30 14:41:16
回答 1查看 10.9K关注 0票数 17

有没有一种方法可以在与socket.io握手WebSocket连接时轻松传递身份验证cookie?目前我必须单独完成,如下所示:

代码语言:javascript
复制
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+"'}");
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-30 14:54:50

WebSockets确实支持cookie,因为它们是基于超文本传输协议的,但是快速浏览一下Socket.IO的源代码就会发现不支持这种内置的cookie。

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

在连接使用flash套接字的情况下,很难让Flash发送浏览器的cookie而不是它自己的设置,所以即使您直接发送cookie,在flask套接字连接的情况下也不会在浏览器中设置cookie。

目前还没有内置到Socket.IO中的这种支持,所以闪存套接字将会失败。

你可以在this issue上读到,这里有一个关于flash cookie problem的问题。

最好的解决方案仍然是让它成为你自己协议的一部分。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4311180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档