【问题标题】:What is the difference between setting a Session's variable and Meteor Streams?设置 Session 的变量和 Meteor Streams 有什么区别?
【发布时间】:2014-03-21 07:18:33
【问题描述】:

我是流星新手。我遇到了 Meteor Streams 包,它允许“流星的实时消息传递”。这是它可以做的:

Meteor Stream 是跨流星的分布式 EventEmitter。它可以通过过滤器进行管理,并且具有良好的安全模型(继承自现有的流星安全模型)。您可以创建任意数量的流,并且它独立于 mongo。

使用 Meteor Streams,您可以在之间进行通信

客户对客户 服务器到客户端 客户端到服务器 服务器到服务器

有一个在实时黑板上使用的示例,用户可以在其中一起画画。作为一个 Meteor 新手,出于无知,我问,使用这样的东西和只更新会话(即 Session.set、Session.get)有什么区别。正如我看到的正在使用会话,可以使用 Session.set 打开和更新两个浏览器并使用相同的信息。那么在两个人一起画画的环境中,为什么不能只使用 Session 设置 vs Meteor 集合或 Streams 来完成呢?我对会话设置不了解是什么?我相信我可能错误地认为可以使用会话设置,我只是想知道为什么。它将帮助我理解 Meteor 和 Meteor Streams 包中的会话。

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

    Session 变量是一个快速创建的变量,因此您可以被动地更改模板中的内容。

    例如,您的模板中有这个:

    <template name="hello">
        {{message}}
    </template>
    

    有了它一个模板助手

    Template.hello.message = function() { return Session.get("message") }
    

    如果您执行Session.set("message", "Hi there") 之类的操作,则 html 会显示 Hi there。这个想法是您可以使用它轻松更改 HTML。它是一种单向数据绑定。

    Meteor 流可帮助您在浏览器和服务器(或服务器和客户端之间的其他组合)之间进行通信,以便您可以来回发送消息,但它不会帮助您更改 HTML。

    同样,Session 不会帮助您在浏览器和服务器之间进行通信,它可以帮助您在事件中有结果时更改 HTML,或者在您的 javascript 代码和用户看到的 html 之间响应式传递数据。

    通过黑板示例,您可以共享其他用户绘制的数据,但它不会帮助您在黑板上绘图。 (在黑板的情况下,您可以使用流,因为您正在使用 javascript 更新画布,因此您不需要会话)。您不能单独使用 Session(或者因为它是画布所以不需要) - 但您需要 Meteor 流与其他用户通信。

    您也可以使用 JQuery 之类的东西来更新您的 html!到目前为止,使用 Session 是最简单的,因为您可以全部使用它,只需更新一件事,其余的都可以更改。

    【讨论】:

      猜你喜欢
      • 2014-06-27
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 2019-03-18
      • 2020-06-05
      相关资源
      最近更新 更多