我是流星新手。我遇到了Meteor Streams包,它允许“Meteor实时消息”。以下是它的功能:
Meteor Stream是流星上的分布式EventEmitter。它可以使用过滤器进行管理,并具有良好的安全模型(继承自现有的流星安全模型)。您可以创建所需数量的流,它与mongo无关。
使用Meteor Streams,您可以在
之间进行通信客户端到客户端 服务器到客户端 客户端到服务器 服务器到服务器
有一个例子,它用在实时黑板上,用户可以在那里画画。作为一个流星新手,出于无知,我问,使用这样的东西和只更新会话即Session.set,Session.get之间的区别是什么。正如我已经看到使用会话,可以使用Session.set使用相同的信息打开和更新两个浏览器。因此,在两个人正在绘制的环境中,为什么不能使用Session设置与Meteor集合或Streams完成?是什么我不了解会话设置?我相信我可能会错误地认为可以使用会话设置,我只是想知道原因。它将帮助我理解Meteor中的Sessions和Meteor Streams包。
答案 0 :(得分:3)
会话变量是一个快速变量,因此您可以反应性地更改模板中的内容。
例如,你在模板中有这个:
<template name="hello">
{{message}}
</template>
使用模板助手
Template.hello.message = function() { return Session.get("message") }
如果您执行Session.set("message", "Hi there")
之类的操作,html会说您好。我们的想法是,您可以使用此方法轻松更改HTML。它是一种单向数据绑定。
Meteor流可以帮助您在浏览器和服务器之间进行通信(或服务器和客户端之间的其他组合),以便您可以来回发送消息,但它不会帮助您更改HTML。
同样,Session不会帮助您在浏览器和服务器之间进行通信,它可以帮助您在事件中产生结果时更改HTML,或者在您的javascript代码和用户看到的html之间反复传递数据。
使用黑板示例,您可以共享其他用户绘制的数据,但它不会帮助您绘制到黑板上。 (对于黑板,您可以使用流,因为您使用javascript更新画布,因此您不需要会话)。你不能单独使用Session(或者不需要自从它的画布) - 但是你需要Meteor流来与其他用户进行通信。
你可以使用像JQuery这样的东西来更新你的html!到目前为止,使用Session是最简单的,因为你可以全部使用它,只需更新一件事就可以改变其他所有内容。