【问题标题】:How do I publish data from the server and listen for changes on the client in Meteor?如何从服务器发布数据并在 Meteor 中监听客户端的变化?
【发布时间】:2012-05-14 01:26:21
【问题描述】:

我发现 Meteor(如 http://meteor.com)在后台使用 SockJS。

我有一些服务器端代码可以定期检查 iTunes 中正在播放的歌曲,我想将曲目信息发布到客户端。

我查看了 Meteors 文档,而 Meteor.publish/Meteor.subscribe 似乎专门处理 Meteor.Collections。我只想传递任意数据,例如字符串或 JSON。

我是否可以像 Socket.IO 或 Faye 一样在 Meteor 中进行简单的发布/订阅?

【问题讨论】:

  • 我自己寻找了类似的任意行为,但一无所获,希望其他人会介入。FWIW,我最终制作了一个名为“警报”的集合和一个观察处理程序,当新警报出现时会做一些特别的事情推送给客户端。

标签: node.js meteor


【解决方案1】:

您可以发布任意数据。它不必来自 Meteor.Collection。

请参阅http://docs.meteor.com/#meteor_publish 了解起点。您需要在服务器上编写一个发布函数,该函数调用Meteor.setInterval 来设置定期检查,然后使用this.setthis.unsetthis.flush 将各个属性推送到每个客户端。

【讨论】:

  • 是的,我确实调查过,但我不知道如何通过 Meteor.subscribe 在客户端检索这些数据。有什么线索吗?
  • 只需在客户端调用Meteor.subscribe('name')。它将使用您的发布函数在调用set 时使用的名称填充Meteor.Collection
  • 所以我终于弄清楚出了什么问题……我在尝试发布时不断出错。我查看了源代码,this.set 只需要 3 个参数(最后一个是对象文字)。不是文档中所述的 4 :)
  • 我刚刚在我的 iPad 上打开了我的应用,看起来它只发布到最后一个客户端加载应用?
  • 重新 iPad:这似乎不对。每个新客户端都会调用服务器上的发布函数。
猜你喜欢
  • 2020-05-02
  • 2019-06-17
  • 1970-01-01
  • 1970-01-01
  • 2021-02-02
  • 2016-06-25
  • 2013-05-21
  • 1970-01-01
  • 2018-06-28
相关资源
最近更新 更多