Meteor - 如何在数据更改时自动将用户重定向到页面

Meteor - How do I automatically redirect user to page when data changes

我正在编写一个 Meteor 应用程序,它从机器(想想物联网)获取外部数据并显示大量图表、图形等。到目前为止一切顺利。应用程序中有多个页面(到目前为止,每种图形类型一个)。现在,当数据被输入 "real-time" 时,有一种情况(正常)数据 "set" 被完全重置。 IE。所有数据都不再有效。发生这种情况时,我想将用户重定向回 "Home" 页面,而不管他们在哪里(好吧,主页除外)。

我希望将其设为 "global" 项,但也不希望开销太大。我注意到 iron:router(我正在使用)有一个 onData() 方法,但这似乎有点——高开销——因为它只是一个指示重置的数据。

由于每个页面相当 "independent" 并且用户可以在页面上停留很长时间(图表会随着基础数据的变化而自动更新),我什至不确定 iron:router 是最好的方法。

这是流星 1。0.X 顺便说一句。

只是在寻找一种干净的 "proper" Meteor 方法来处理这个问题。我可以检查每个页面的重新显示逻辑,但我认为更抽象(阅读:全局)的方法会更长期友好(因此,如果我们添加更多图表页面,它仍然会自动工作)..

谢谢!

这是 cursor.observeChanges http://docs.meteor.com/#/full/observe_changes 的工作 设置一个作为 "reset notification" 服务器的集合,在插入新通知时向所有用户广播。

在客户端:

criteria = {someCriteria: true};
query = ResetNotificationCollection.find(criteria)
var handle = query.observeChanges({
  added: function (id, user) {
    Router.go('home');
  }
});

每当发生重置时:

notification = { time: new Date(), whateverYouWantHere: 'useful info' }
ResetNotificationCollection.insert notification

插入时,观察集合变化的所有客户端都将响应高效的小 DDP 消息。