使用 Socket.io 和 nodejs 向用户发送更新

Posted

技术标签:

【中文标题】使用 Socket.io 和 nodejs 向用户发送更新【英文标题】:Send updates to a user using Socket.io and nodejs 【发布时间】:2016-12-12 09:28:11 【问题描述】:

我正在使用 MEAN Stack(类似于 Facebook)构建一个应用程序。因此,用户可以使用不同的浏览器登录我的应用程序,例如,如果用户将向 MongoDB 添加新消息,我想在其他会话中更新他的消息。同样的他会删除一个按摩。同时,可能有不同的用户从不同的浏览器登录,我想通知用户他在其他会话中的更新。

Socket.io 是否支持这样的选项?最好的方法是什么?

谢谢。

【问题讨论】:

【参考方案1】:

是的,socket.io 确实支持。这是socket.io自己做的一个例子:https://github.com/socketio/socket.io/tree/master/examples/chat

您应该寻找socket.on(),它们是服务器端事件的侦听器,并查看socket.emit(),它们是事件的发送者。 .emit() 可以添加到一个函数中,例如点击按钮触发。

根据您的需要,如果您要将消息发送给使用您的应用的每个用户,那么您可以使用上面的代码。但是,如果您只想发送给特定的人员列表,您应该查看名为 Rooms (http://socket.io/docs/rooms-and-namespaces/#rooms) 的东西。 这就像它听起来的那样,它将消息发送到用户连接到您的应用程序时添加到的特定房间。

【讨论】:

当用户登录时会为他打开一个房间,当他使用另一个浏览器登录时,我会将他添加到他的房间,然后每次我想要的更新发送这个房间,对吗?跨度>

以上是关于使用 Socket.io 和 nodejs 向用户发送更新的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS 和 Socket.IO 用户认证

Nodejs & Socket.io 可以支持多少用户?

使用Socket.IO以及Express和NodeJS导出

使用 Nodejs 和 Socket io

Node JS、Socket.io、异步和阻塞事件循环

验证 socket.io/nodejs 的用户