【问题标题】:"Bind" socket to user将套接字“绑定”到用户
【发布时间】:2015-10-28 11:25:32
【问题描述】:

我对套接字还很陌生,想为现有应用程序提供一些实时元素,例如通知。我正在使用 SailsJS(以及带有本地策略的 Passport)并且想要一个可以像这样调用的服务

Notification.send(userID, message);

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

任何想法或文章(在 Google 上找不到任何内容 - 可能是因为我不知道具体要搜索什么...)?谢谢。

【问题讨论】:

    标签: node.js websocket sails.js


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-23
      • 1970-01-01
      • 2013-01-06
      • 2012-05-26
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      相关资源
      最近更新 更多