作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 sails.js 框架实现私有(private)聊天功能,但在尝试向特定用户发送消息时遇到了一些麻烦。
目前,我已经通过使用 socket.io 的 .socket(socket.id).emit(event,message)
将消息发送到特定的 socket.id 来实现私有(private)通信,但是这种方法的问题在于,每次用户打开一个新选项卡时,都会为该新连接生成一个新的 socket.id。
我的问题是:sails.js 是否促进了一种向特定用户 session 发出事件(使用 socket.io)的方法,而不是一堆套接字 ID?这些技术有可能吗?
所以我只能发送一次事件,并确保在当前打开聊天应用程序的所有选项卡中都收到它。
提前致谢。
最佳答案
Sails 通过一些有用的 pubsub 方法增强了它的所有模型。每当您通过套接字请求(例如 socket.get('/user/123')
)找到模型时,请求套接字会自动订阅有关该模型的所有消息。然后,您可以调用 User.message(123, data)
向该用户的所有已连接套接字发送消息。
pubsub 方法的文档是 here .
关于node.js - 使用 socket.io 和 sails.js 发送特定于 session 的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21167451/
我是一名优秀的程序员,十分优秀!