有没有一种方法可以在与socket.io握手WebSocket连接时轻松传递身份验证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+"'}");
});
发布于 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的问题。
最好的解决方案仍然是让它成为你自己协议的一部分。
https://stackoverflow.com/questions/4311180
复制相似问题