有没有办法在一个页面上打开websocket,然后在另一个页面上重复使用(例如,在用户单击链接后,在同一个选项卡中),而不是在每次页面加载后打开一个新的websocket?浏览器存储能够保持打开的套接字吗?
目标是能够为每个用户(或标签)保留一个websocket,这样做很棒,而不需要以非传统方式在页面之间移动,例如每次使用Javascrpt将内容加载到div中用户与页面交互.
答案是否定的.
即使未通过调用显式关闭mySocket.close();套接字,浏览器也会在重新加载时关闭套接字.
我尝试将Web Socket对象存储在本地存储中并使用它再次检索数据.返回的对象是有效的,但连接不再存在.因为,当页面重新加载时,套接字被非正常地终止.
服务器端的消息说:
[Errno 10053] An established connection was aborted by the software in your host machine
Run Code Online (Sandbox Code Playgroud)
你去......
小智 7
一个不同的方法将是保持用户,而不是在不同的页面插座.我的意思是你用javascript将客户端的ID存储在cookie中,每次用户尝试从你的任何网站页面打开一个新的套接字时,你将这个ID发送到服务器然后服务器有办法知道这个新连接来自同一用户.
我在最近的一个项目中完成了它并且它完美地运行:)根据您计划要做的事情,您可以使用他的ID保持服务器上的用户状态,或者将其存储在其他cookie中,或者使用事件flash将其存储在共享对象中!
| 归档时间: |
|
| 查看次数: |
7463 次 |
| 最近记录: |