如果发布功能未返回的其他集合发生更改,如何更新订阅?

时间:2013-03-19 19:29:59

标签: meteor

我已经从Parties示例中修改了server.js.

而不是让“目录”发布我希望它只发布那些用户的所有用户:

  • 拥有邀请当前用户的一方
  • 被邀请参加当前用户
  • 的派对
  • 被邀请参加当前用户拥有的一方

见这里:https://github.com/dimfisch/meteor-dependency/blob/master/parties/server/server.js

问题在于,当前用户邀请新用户(他们先前未与派对相关的新用户)或被新用户邀请时,“目录”订阅不会更新,因为返回的光标反应性,在这些情况下不会改变。

以下是重现这种情况的步骤:

  1. 打开两个不同的客户,比如Joe和Kate
  2. Joe创建了一个新的私人派对并邀请凯特
  3. Kate看到了新派对,但没有在Meteor.users中获得有关Joe的任何信息
  4. 我希望乔出现在凯特的客户
  5. 所以问题是,如何实现? 一个可能的途径是在“目录”发布功能中使“派对”光标observeChanges。但我不确定这实际上是否有效,我想知道是否有更简单的解决方案。

1 个答案:

答案 0 :(得分:0)

您似乎可以在客户端使用observeChanges。每当parties集合发生更改时,请停止并重新启动users订阅,这会强制重新运行发布功能。

parties发布功能只会发送当前用户有权访问的参与方信息。 users发布功能会向有权访问相同方的任何用户发送相应的用户信息。

服务器端,您可能会做同样的事情,但这会更有效......正常发布parties但只手动发布与用户共享的users。不知道删除案例如何工作。似乎它会是一种痛苦,而且可能效率不高。