Node.js &引用;绑定";套接字到用户

Node.js &引用;绑定";套接字到用户,node.js,websocket,sails.js,Node.js,Websocket,Sails.js,我对sockets相当陌生,希望为现有应用程序提供一些实时元素,比如通知。我正在使用SailsJS(和当地strat的Passport),希望得到一个可以像这样调用的服务 Notification.send(userID, message); 对于所有其他类型的实时事件(私人消息等),这也是一种非常酷的方式。但我需要知道的是如何将套接字“绑定”到用户ID 任何想法或文章(在谷歌上找不到任何东西-可能是因为我不知道到底要搜索什么…)?谢谢。假设您在.sailsrc中启用了pubsub钩子(只要您

我对sockets相当陌生,希望为现有应用程序提供一些实时元素,比如通知。我正在使用SailsJS(和当地strat的Passport),希望得到一个可以像这样调用的服务

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


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

假设您在.sailsrc中启用了pubsub钩子(只要您没有看到pubsub:false,就会启用该钩子),您可以让客户机像这样订阅他们自己的用户模型,这样他们将收到发送到其用户ID的任何通知:

User.findOne(userId).then(function (me) {
    User.subscribe(req.socket, me, 'message');
})
然后,您可以调用此命令向控制器中的特定用户发送通知:

User.message(recieverUserId, {type: "message", data: notification});
只需将类型更改为任何相关的类型,如“newmatch”,并发送适当的数据。
编辑:基本上,.message()是sails pubsub库向订阅模型发送通知的方式。您还可以将一个用户数组传递给User.subscribe

假设您在.sailsrc中启用了pubsub钩子(只要您没有看到pubsub:false,它就会启用),您可以让一个客户端像这样订阅他们自己的用户模型,这样他们将收到发送给其用户ID的任何通知:

User.findOne(userId).then(function (me) {
    User.subscribe(req.socket, me, 'message');
})
然后,您可以调用此命令向控制器中的特定用户发送通知:

User.message(recieverUserId, {type: "message", data: notification});
只需将类型更改为任何相关的类型,如“newmatch”,并发送适当的数据。 编辑:基本上,.message()是sails pubsub库向订阅模型发送通知的方式。您还可以将用户数组传递到User.subscribe