【问题标题】:Multiple Questions about meteor pub/sub关于流星发布/订阅的多个问题
【发布时间】:2015-09-20 00:10:45
【问题描述】:

我是 Meteor 的新手。我打算向集合(客户端+服务器)添加一个新文档并让服务器选择更改。然后,当我需要使用集合上所有插入/更新/删除的总和来更新我的模板时,我会从服务器发布集合并在客户端订阅它。

  1. 一旦我们发布了一些东西,我们可以订阅、停止订阅然后再次订阅吗?我打算仅在按下客户端上的“添加文档”按钮时订阅。在处理这种点击的函数中,我打算插入,然后调用服务器上的方法发布然后订阅。这是解决这个问题的正确方法吗?

  2. 有没有办法简化这个?就像我将文档的插入或更新放入客户端集合中,让 Meteor 处理更新服务器端集合然后更新客户端模板?

  3. 在我看来,根据我所学到的一点点,对于我拥有的一些用例,每次点击都需要发布。我这样做是为了更新反应表以在每次选择文件夹时列出当前文件夹的内容。因此,服务器上的发布检查该文件夹作为父文件夹的集合中的内容并将其返回。文件夹的每个新选择都意味着新发布。可以做些什么来简化这个吗?

【问题讨论】:

  • 你做过教程吗?
  • 我做到了。它们都展示了发布-订阅的简单方法。我还没有找到关于我可以退订和重新订阅多少次的答案等等我问的问题。
  • 您可以不断更改订阅
  • 1.是的,2. 流星的全部意义 3. 不断更新您的订阅,但您想过滤您的收藏
  • 编写一些代码,看看它是如何运行的,然后在遇到问题时提出问题

标签: meteor publish-subscribe


【解决方案1】:

您将 Meteor 背后的核心概念之一过于复杂化了:反应性。不过,以下是对您的 3 个问题的一些说明:

  1. 这不是您需要担心的事情。一旦你发布了一个 集合或集合的子集,它已发布给所有人 连接的客户端。当您订阅上述出版物时,任何 所做的更新会被动地下拉到所有连接的 具有该订阅的客户。因此,如果我将文档添加到 我订阅的收藏,比如说一个任务列表,它将是 被动地发送到订阅它的任何客户端, 包括我自己的。

  2. Meteor 有一种称为延迟补偿的功能,它可以立即 更新用户界面,只要它与 服务器说,插入似乎是瞬间发生的。这 如果您插入到 从客户那里收集,只要您的插入被批准(即 只要客户端有权插入该集合)。

  3. 您不需要每次都重新发布。只要你出版 您需要的集合中的文档,并且您已订阅 客户,任何符合您的 Mongo 标准的新文件 客户端上的选择器和返回语句将可用于 您和您的 UI 将自动更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2014-06-16
    • 2015-05-15
    • 1970-01-01
    • 2018-12-18
    • 2018-12-26
    相关资源
    最近更新 更多