2012-10-15 88 views
1

observe docs,我必须定义和调用停止功能,或者我的观察将运行永远。关键是,如果用户决定在预期的时间之前关闭浏览器,例如如何拨打站点?如果连接死了,我怎样才能拨打stop流星观摩运行永远

回答

3

您实际上不需要担心断线。任何时候订阅都会停止(无论客户端是否断开连接,或者拨打未接电话,或者致电this.stop),服务器将在拆除活动预订之前运行所有注册的onStop处理程序。 (顺便说一句,拆卸不会立即发生,但它最终会终止,当客户端尝试重新连接并恢复会话时,这个想法是等一下)。

做什么需要要做的是确保注册一个onStop处理程序,清理你的代码使用的任何资源。再次,这需要在订阅停止时发生。 onStop是正确的选择。例如,像在示例中的第一个代码段中那样,在积极的观察中调用stop非常重要。

3

要做到这一点,你可以把它里面的发布:

this.session.socket.on("close", function() { /*do your thing*/}); 

所以,如果你想停止的观察者......

Meteor.publish("something", function() { 

    // ... 
    // your observers code here 
    // ... 

    self.onStop(function() { 
    handle.stop(); 
    }); 
    this.session.socket.on("close", function() { 
    handle.stop(); 
    }); 
}); 

答发现here。感谢周华兵。