“绑定”套接字给用户

时间:2015-08-05 15:27:47

标签: node.js websocket sails.js

我对套接字很新,并希望为现有应用程序提供一些实时元素,例如通知。我正在使用SailsJS(和带有本地策略的Passport)并且想要一个可以被称为

的服务
Notification.send(userID, message);

对于所有其他类型的实时事件(私人消息,......),这也是一种非常酷的方式。但我需要知道的是如何将套接字“绑定”到UserID。

任何想法或文章(在谷歌上找不到任何东西 - 可能是因为我不知道究竟要搜索什么......)?感谢。

1 个答案:

答案 0 :(得分:0)

假设你的.sailsrc中启用了pubsub挂钩(只要你没有看到pubsub:false),你可以让客户订阅他们自己的用户模型,这样就可以了他们将收到发送给他们userId的任何通知:

User.findOne(userId).then(function (me) {
    User.subscribe(req.socket, me, 'message');
})

然后你可以调用它来向控制器中的特定用户发送通知:

User.message(recieverUserId, {type: "message", data: notification});

只需将类型更改为类似的相关内容:" new Match"并发送适当的数据。 编辑:基本上,.message()是sails pubsub库向订阅模型发送通知的方式。您还可以将一组用户传递给User.subscribe