【问题标题】:Sails 0.10 ModelIdentity.subscribe or .watch and for publishCreate()?Sails 0.10 ModelIdentity.subscribe 或 .watch 以及用于 publishCreate()?
【发布时间】:2014-07-30 02:07:01
【问题描述】:

我正在研究SailsCasts,并且正在开发SailsJS beta 0.10 版

除了在 0.9.7 中,一切正常,我使用这个:

//subscribe this socket to the User model classroom
User.subscribe(req.socket);

// subscribe this socket to the user instance rooms
User.subscribe(req.socket, users);
  • 如何为 0.10 做到这一点?

尤其是publishUpdatepublishDestroy 的订阅工作正常。

对于publishCreate,我需要'User.subscribe(req.socket)',并且我在控制台中有警告:

debug: Deprecated: Model.subscribe(socket, null, ...)
debug: (see http://links.sailsjs.org/docs/config/pubsub)
debug: Please use instance rooms instead (or raw sails.sockets.*() methods.)

然后:

  • 'model.watch()''model.subscribe()' 有什么区别?

【问题讨论】:

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


    【解决方案1】:

    问题 1

    我更愿意发表评论(缺乏代表...),但您有没有好好阅读the docs

    您不能像User.subscribe(req.socket) 那样调用.subscribe。它需要第二个参数records。因此,如果 users 是用户模型实例的列表,您的 User.subscribe(req.socket, users); 应该可以工作。

    问题 2

    我不是节点或帆的专家(根本......),但the docs - watchclaimmodel.watch() 订阅客户端以发布模型实例的事件。我看不到publishUpdate、publishDestory 等的提及。我认为它只监视创建事件。 .subscribe() 获取模型列表(或模型)并为客户端订阅该模型实例列表的 publishAdd、publishDestroy、publishRemove、publishUpdate 事件(默认情况下)。您还可以指定要订阅的上下文。

    因此,如果您只想发送套接字 publishCreate 事件,您似乎实际上想要使用 User.watch(req.socket) 而不是 .subscribe()。如果您需要所有这些,请使用User.subscribe(req.socket,users,[create,update,destroy,]) 之类的内容。 如果你想更酷,你可以设置autosubscribe属性来包含你关心的上下文列表,然后使用User.subscribe(req.socket,users)the docs - context

    干杯

    【讨论】:

    • 您提供的两个文档链接现在都已失效 (404)。您可能需要相应地更新您的帖子
    【解决方案2】:

    为了订阅模型:

    subscribe: function(req, res) {
        Model.find().exec(function(err, records) {
            YourModel.subscribe(req.socket, records);
            YourModel.watch(req);
        });
    }
    

    这样,每次创建、销毁或更新记录时,您都会收到一条消息。

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多