如何在另一个页面上恢复Socket连接?

时间:2013-06-27 05:04:20

标签: php node.js session socket.io

您好我正在为我的大学创建一个社交网站。它基于PHP。 创建websocket连接以使用带有connect和socket.io框架的node.js检索通知并设置聊天系统。

我在一个页面上启动了套接字连接,我希望在Web服务器提供的其他页面上恢复具有相同ID的相同连接。

在注销时销毁套接字,就像PHP中的会话一样。

2 个答案:

答案 0 :(得分:0)

另一个有类似问题的主题:How to maintain a WebSockets connection between pages?

我目前正在使用相同的实现,并且我在服务器端代码上克服了这个问题,该代码具有用户类,该用户类具有属于该用户的连接列表。第一个客户端将连接到服务器,之后客户端将使用用户名和给定的随机散列(针对网络钓鱼的额外安全性)注册自己,服务器使用此信息来确定谁是此客户端。

当注销send destroy命令时也会向websocket服务器发送,因此它知道从内存中销毁这个用户。

答案 1 :(得分:0)

当套接字通过握手过程时,您需要维护会话 通过恢复会话 - 您还可以将相关数据恢复到该会话 不要在socket对象中存储与用户相关的数据,而socket.id对于识别是不可靠的 - 仅用于连接。

此外,您可以将会话数据存储在redis中,然后使用PHP和节点收集它,以便拥有一个会话数据存储但使用共享应用程序。