Node.js并将数据发送回所有浏览器选项卡

时间:2013-12-08 18:23:36

标签: javascript node.js

我使用的是Node.js,它只适用于一个窗口或标签。但是我希望在用户浏览器的所有打开的选项卡中从Node.js返回数据。

像facebook Like一样,会在所有打开的标签页中通知。

这是我的常规发射代码:

users[user_id].socket.emit( 'xx', { data } );

data仅在首次打开的标签页中可用。如何在所有打开的标签中获取它?

1 个答案:

答案 0 :(得分:1)

假设您正在使用Socket.io并且users是在新连接上添加user_id的对象,可能发生的是每个新的套接字连接具有相同的user_id {{1}} 1}}覆盖以前缓存的套接字。这是因为对象键需要是唯一的,否则设置对象的相同键实际上会成为对该值的更新或覆盖。

您可能对rooms感兴趣。或者,一种可能的解决方案是将用户的对象值转换为一个阵列,您可以将其推送到新连接并从断开连接上进行拼接。当你想发送一条消息时,你会迭代用户的数组并相应地发射到数组中的每个套接字。