1

我正在开发一个 webapp,我需要一个与admin关联的客户端来触发一个事件(例如,在下拉列表中选择一个新值),这反过来会告诉所有其他连接的客户端更改订阅,可能使用参数,即新选择的值。

类似的东西

Template.bid.events
  "change .roles": (e, tpl) ->
    e.preventDefault()
    role = tpl.$("select[name='role']").val()
    Meteor.subscribe role

当然,这仅适用于当前客户。
我认为的一种方法是保留一个单独的集合,该集合指向要使用的当前集合,因此客户端可以以编程方式对其进行操作。感觉很麻烦,你。

有没有流星方式来实现这一目标?
谢谢

4

2 回答 2

1

在meteor中,每当你遇到一个听起来像“我需要跨客户端同步数据”的问题时,你应该使用一个集合。我意识到仅仅发送一条数据似乎有点过头了,但我向你保证,这是目前阻力最小的路径。

有一些方法可以公开伪集合,这些伪集合实际上并没有写入 mongo,但是对于你的用例来说,这听起来确实有点矫枉过正 -new Mongo.Collection是要走的路。

于 2015-07-24T18:58:32.270 回答
0

您可以使用流在连接的客户端和服务器之间建立一条简单的通信线路。它不在 MongoDB 中存储数据。只需让所有连接的客户端侦听流并在带有订阅名称的新消息进入时切换订阅。确保只有与管理员关联的客户端才能将消息推送到流中。

可用包:https ://atmospherejs.com/lepozepo/streams

示例:http ://arunoda.github.io/meteor-streams/

于 2015-07-25T13:49:12.220 回答