php – 在Websocket握手上使用会话数据
如果登录的用户导航到要使用WebSockets的站点的某个区域,那么我如何抓住该会话ID,以便我可以在服务器上识别他?
我的服务器基本上是一个无休止的循环,它保存所有连接的用户和信息的信息,所以为了抓住这个id,我认为唯一合适的时刻是握手,但不幸的是握手的请求头不包含cookie数据:
那我该怎么才能抓住这个id呢?我以为我可以以某种方式强制javascript发送cookie数据以及该请求,但任何自尊网站在2014年将拥有httpOnly会话cookie,以便不会解决.任何帮助是极大的赞赏! 以下是我使用http://www.4shared.com/rar/7RIos1tuce/PHPWebSocket-Chat-master.html服务器文件的下载链接
http只有Cookie以及安全的cookies可以通过websocket正常工作.
某些Websocket模块已经选择忽略请求中的cookie,因此您需要阅读模块的规范. 尝试:websocket节点:https://github.com/Worlize/WebSocket-Node. 确保使用安全的Websocket协议作为wss://xyz.com 更新: 此外,chrome将不会在“检查元素”网络选项卡中显示Cookie. 在节点尝试转储请求,像: wsServer.on('request',function(request) { console.log(request); console.log(request.cookies); // works in websocket node } 如果您在日志中的某个地方看到cookies,那么您就可以了. 如果您使用的是安全的Cookie,则需要使用安全的Web套接字:wss:// UPDATE2: cookie在初始请求中传递. Chrome不会显示(始终),因为有时它会显示省略Cookie信息的临时标头. 由websocket服务器来完成与cookies的“某些”,并将它们附加到每个请求中. 看你的服务器的代码:https://github.com/Flynsarmy/PHPWebSocket-Chat/blob/master/class.PHPWebSocket.php我没有看到单词“cookie”在任何地方,所以它没有很好的打包和附加到每个websocket连接.我可能错了,这就是为什么你可能想联系开发人员,看看整个标题是否被附加到每个连接以及如何访问它. 这可以肯定地说:如果你使用安全的cookie,那么除非你使用安全的websocket wss://mysite.com,否则cookies将不被传输.平原ws://mysite.com将无法正常工作. 此外,如果域与网页相同,Cookie将只会在请求中传输. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |