【问题标题】:Using socket.io to send data to a specific view/id使用 socket.io 将数据发送到特定视图/id
【发布时间】:2016-07-06 22:23:43
【问题描述】:

我有一个使用 NodeJS、Express 和 MongoDB 的 Web 应用程序。在我的应用程序中,我有一个视图,任何访问该应用程序的人都可以看到该视图。该视图使用不同的图像呈现,具体取决于用户选择查看的图像(他们不需要登录),即视图是 mapView/mapId。

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

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

【问题讨论】:

  • 您能否提供您遇到的特定问题的代码示例?如果没有具体的代码可以看,这个问题很难回答。

标签: node.js express socket.io


【解决方案1】:

看看你的server can do with rooms是什么

这个想法是您的每个连接,从一个特定的角度来看,都连接到一个房间。然后,您使用服务器中的 socket.io 仅向该房间发送消息。只有那些套接字会收到消息。

【讨论】:

  • 酷!当你说特定的观点时。 mapView/12345 是与 mapView/6789 不同的视图,对吗?抱歉,我是新手。
  • 对。你可以为每个人创造一个不同的房间。服务器之一,当您知道该连接在该视图中时,服务器将该套接字订阅到房间socket.join('12345')。当用户改变视图时,你的服务器需要socket.leave('12345'那个房间,.join新房间。
猜你喜欢
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 2017-12-03
  • 2018-08-10
  • 1970-01-01
  • 2014-12-31
相关资源
最近更新 更多