如何在 Meteor 中使用客户端重新连接事件。
在客户端,Meteor.apply 采用新的等待选项,确保在此方法完成之前不会向服务器发送进一步的方法调用;它用于登录和注销方法,以保持用户 ID 的明确定义。您还可以指定在重新建立连接时运行的 onReconnect 处理程序;Meteor Accounts 使用它在重新连接时重新登录。
有人可以提供一个例子。
这是帐户包中的示例。
Accounts._makeClientLoggedIn = function(userId, token) {
Accounts._storeLoginToken(userId, token);
Meteor.default_connection.setUserId(userId);
Meteor.default_connection.onReconnect = function() {
Meteor.apply('login', [{resume: token}], {wait: true}, function(error, result) {
if (error) {
Accounts._makeClientLoggedOut();
throw error;
} else {
// nothing to do
}
});
};
userLoadedListeners.invalidateAll();
if (currentUserSubscriptionData) {
currentUserSubscriptionData.handle.stop();
}
var data = currentUserSubscriptionData = {loaded: false};
data.handle = Meteor.subscribe(
"meteor.currentUser", function () {
// Important! We use "data" here, not "currentUserSubscriptionData", so
// that if we log out and in again before this subscription is ready, we
// don't make currentUserSubscriptionData look ready just because this
// older iteration of subscribing is ready.
data.loaded = true;
userLoadedListeners.invalidateAll();
});
};
如果您希望帐户仍然有效,我假设您不能只定义另一个 default_connection.onReconnect ?
谢谢。
编辑:
再想一想,而不是使用 onReconnect 你可能应该使用它Meteor.status()
吗?