使用socket.io和sails.js发送特定于会话的消息

时间:2014-01-16 16:32:32

标签: node.js express websocket socket.io sails.js

我正在尝试使用sails.js框架实现私人聊天功能,并且在尝试向某个特定用户发送消息时遇到了一些麻烦。

目前,我通过使用socket.io的.socket(socket.id).emit(event,message)将消息发送到特定的socket.id来实现私有通信,但这种方法的问题是每次用户打开新选项卡时,为该新连接生成一个新的socket.id。

我的问题是:sails.js是否有助于将事件(使用socket.io)发送到特定用户会话而不是一堆套接字ID?这些技术有可能吗?

所以我只能发送一次事件,并确保在聊天应用程序当前打开的所有选项卡中都收到该事件。

提前致谢。

1 个答案:

答案 0 :(得分:3)

Sails使用一些有用的pubsub方法扩充其所有模型。无论何时通过套接字请求(例如socket.get('/user/123'))找到模型,请求套接字都会自动订阅有关该模型的所有消息。然后,您可以调用User.message(123, data)向该用户的所有连接套接字发送消息。

pubsub方法的文档是here