Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cookies 如何在通过WebSocket连接到socket.io时发送cookie?_Cookies_Node.js_Websocket - Fatal编程技术网

Cookies 如何在通过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("

在将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("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及更高版本中已解决了此问题。如何解决此问题?你能澄清一下吗?