【发布时间】:2014-04-12 16:17:13
【问题描述】:
如果登录的用户导航到网站的某个区域以使用 WebSockets,我如何获取该会话 ID 以便在服务器上识别他?
我的服务器基本上是一个无限的 while 循环,它包含有关所有连接的用户和东西的信息,所以为了获取该 id,我认为唯一合适的时刻是在握手时,但不幸的是,握手的请求标头不包含 cookie 数据:
请求标头
接受:text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
接受编码:gzip,放气 接受语言:en-US,en;q=0.5
缓存控制:无缓存
连接:保持活动,升级
DNT:1
主机:192.168.1.2:9300
来源:http://localhost
编译指示:无缓存
Sec-WebSocket-Key: 5C7zarsxeh1kdcAIdjQezg==
Sec-WebSocket-版本:13
升级:websocket
用户代理:Mozilla/5.0(Windows NT 6.1;WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
那么我怎样才能真正抓住那个 id 呢?我以为我可以以某种方式强制 javascript 与该请求一起发送 cookie 数据,但 2014 年任何自尊的网站都会有 httpOnly 会话 cookie,因此不会成功。非常感谢任何帮助!
这是我正在使用的服务器的链接:https://github.com/Flynsarmy/PHPWebSocket-Chat/blob/master/class.PHPWebSocket.php(感谢接受的答案)
【问题讨论】:
-
你为什么不把文件放在github而不是4shared?