websocket如何处理同一浏览器的两个选项卡
How does websockets deal with for two tabs of the same browser
我有
- 1个PHP服务器(提供http请求)和
- 1 node.js发布更新的数据消息(每个连接都有websocket)
php服务器设置其cookie。在一个浏览器中,此cookie可在所有选项卡中使用。
当浏览器有两个选项卡打开到域时,只有一个cookie标识浏览器,但每个选项卡必须发送一条更新数据的消息。
- 区分选项卡的传统方法是什么
- 我应该使用另一个cookie(由node.js管理)来区分每个浏览器选项卡吗
将我的评论转化为答案。。。
每个选项卡都有一个单独的websocket。这就是如何区分不同选项卡的方法。如果你在服务器中为每个选项卡保留单独的状态,并且你想允许同一用户进行多个连接,那么你必须为每个websocket连接保留状态(你可以使用websocket id),而不是每个用户。
你不需要为每个标签创建一个单独的cookie,因为websocket本身已经作为每个标签的唯一id
你还没有说你的应用程序是否希望所有选项卡的状态都相同,或者每个选项卡的状态不同,你会根据需要在服务器端处理一些不同的事情。如果您希望所有选项卡都能接收相同的数据,那么每当您想向客户端发送数据时,您都必须找到与给定用户关联的所有websocket,并向它们发送相同的数据。
如果您希望每个选项卡独立运行,那么您只需保持每个websocket的服务器端状态,并仅向响应所属的websocket发送响应,而不是向与该用户相关联的所有websocket。
与SO上几乎所有的问题一样,如果你告诉我们更多你实际在做什么,而不是进行理论对话,那么回答更具体的问题会容易得多。例如,如果我们知道你的应用程序应该如何使用不同的选项卡,那么我们就会知道该遵循哪个行为路径。
相关文章:
- 我可以在Dynamics CRM 2016的复合地址字段中添加两个选项字段吗
- 仅在使用javascript和html的浏览器中在相同的两个选项卡之间切换
- 一个文本框,其中两个选项的值不同
- 两个选项卡—第一个选项卡在第二个选项卡中处于调试模式时被卡住
- 我有下面垂直菜单的jquery代码,当我悬停在apparels选项卡上时,我有两个选项卡作为apparels和化妆品
- CRM 2011+问题与javascript中的两个选项集
- 如何使用标题在 PHP 中打开新的两个选项卡
- 引导导航选项卡同时显示两个选项卡
- Boostrap和Angular:同时保持两个选项卡处于活动状态
- 如果我有两个选项的代码,单选按钮的结果将无法正常工作
- 并排显示选择框中的两个选项
- 切换按钮在两个选项卡之间切换
- 有两个选项卡打开到网站,你能知道哪个选项卡是活动的吗
- 删除两个选项
- onchange上有两个选项
- Js在两个选项之间切换;如果“;
- jQueryUI在另一个选项卡中有两个选项卡-高度是't在隐藏时设置
- add()生成两个选项卡,其中一个处于奇数位置,为空且未使用
- Jquery一旦从选择下拉列表中选择两个选项运行代码
- 当两个选项被选中时,使用jquery更改按钮上的链接