使用socket.io发送数据到特定的视图/ ID

使用socket.io发送数据到特定的视图/ ID

问题描述:

我有一个使用NodeJS,Express和MongoDB的Web应用程序。在我的应用程序中,我有一个观点,任何访问应用程序的人都可以看到。该视图使用不同的图像呈现,具体取决于用户选择查看哪个视图(它们不需要登录),即视图是mapView/mapId。使用socket.io发送数据到特定的视图/ ID

现在,我希望类似于通知的内容能够实时发布给那些位于该页面上的通知。当某个特定事件从外部来源发生时,我想在该事件所属的视图上显示一个弹出窗口。所以事件可能只属于一个mapView/mapId,而不是另一个具有不同ID的mapView。同一个mapView/mapId上的所有用户都应该看到通知。请记住,这些是不需要登录的普通用户。

我正在研究Socket.io,因为我知道它是用于制作实时应用程序的。但我想知道这是否是正确的选择。我将如何发送数据到正确的mapView/mapId?

+0

您可以请包括您正在遇到的具体问题的代码示例?如果没有特定的代码,这个问题很难回答。 –

查看您所在server can do with rooms

的想法是什么,你的每一个连接的,从一个特定的观点,加入到房间。然后你使用服务器上的socket.io发送消息给那个房间。只有那些插座才能得到信息。

+0

酷!当你说特定的观点。 mapView/12345是与mapView/6789不同的视图吗?对不起,我是这个新手。 – unconditionalcoder

+0

没错。你可以为每个人创造一个不同的房间。一个服务器,当你知道连接在该视图中时,服务器将该套接字订阅到socket.join('12345')'室。当用户改变视图时,你的服务器需要'socket.leave'('12345''那个房间,'.join'这个新的。 – clay