当与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内置对此不支持,因此闪存套接字将失败。
您可以在本期中了解到这一点
最好的解决方案仍然是使其成为您自己的协议的一部分。