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

Node.js and send back data to all browser tabs

本文关键字:浏览器 选项 js 数据 Node      更新时间:2024-04-26

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

比如脸书Like,它会在你打开的所有标签中通知你。

这是我的常规发射代码:

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

data只在第一个打开的选项卡中可用。如何在所有打开的选项卡上获得它?

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

你可能对房间感兴趣。或者,一个潜在的解决方案是将用户的对象值转换为一个数组,在新连接时推到该数组,并在断开连接时从中拼接。当您想要发送消息时,您需要遍历用户的数组,并相应地向数组中的每个套接字发出消息。