Cookies 如何在通过WebSocket连接到socket.io时发送cookie?
在将WebSocket连接握手到socket.io时,是否有一种方法可以轻松传递身份验证cookie?我现在必须单独做,就像这样:Cookies 如何在通过WebSocket连接到socket.io时发送cookie?,cookies,node.js,websocket,Cookies,Node.js,Websocket,在将WebSocket连接握手到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("
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+"'}");
});
WebSocket确实支持Cookie,因为它们基于HTTP,但是快速浏览Socket.IO的源代码发现,不支持这种内置的Cookie 因此,在这种情况下,直接使用cookies不是一个可行的解决方案,而且,由于您使用的是Socket.IO,因此不能保证用户将通过WebSocket进行连接 在连接使用flash套接字的情况下,很难让flash发送浏览器的cookie而不是自己的cookie集,因此即使您直接发送cookie,在使用flask套接字连接的情况下也不会在浏览器中设置cookie 目前还不支持这个内置的Socket.IO,所以flash sockets将失败 你可以在中读到,这里有一个关于
最好的解决方案仍然是将其作为您自己协议的一部分。仅为将来参考,socket.io版本0.7及更高版本中已解决了此问题。如何解决此问题?你能澄清一下吗?