gpt4 book ai didi

node.js - Sails 0.10 ModelIdentity.subscribe 或 .watch 和 publishCreate()?

转载 作者:搜寻专家 更新时间:2023-10-31 23:42:55 25 4
gpt4 key购买 nike

我正在研究 SailsCasts我正在研究 SailsJS 测试版 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()' 有什么区别?

最佳答案

问题一

我更愿意发表评论(缺乏代表......),但你给了the docs吗?好书?

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

问题2

我不是 node 或 sails 方面的专家(完全...),但是 the docs - watch claimmodel.watch() 为客户端订阅模型实例的 publishCreate 事件。我没有看到 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 .

干杯

关于node.js - Sails 0.10 ModelIdentity.subscribe 或 .watch 和 publishCreate()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24121885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com