How to use a client side reconnection event in Meteor

How do I use a client side reconnection event in Meteor.

On the client, Meteor.apply takes a new wait option, which ensures that no further method calls are sent to the server until this method is finished; it is used for login and logout methods in order to keep the user ID well-defined. You can also specifiy an onReconnect handler which is run when re-establishing a connection; Meteor Accounts uses this to log back in on reconnect.

Can someone provide an example.

Here's the example in the accounts package.

  Accounts._makeClientLoggedIn = function(userId, token) {
    Accounts._storeLoginToken(userId, token);
    Meteor.default_connection.onReconnect = function() {
      Meteor.apply('login', [{resume: token}], {wait: true}, function(error, result) {
        if (error) {
          throw error;
        } else {
          // nothing to do
    if (currentUserSubscriptionData) {
    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;

I assume you can't just define another default_connection.onReconnect if you want the accounts one to still work?



Thinking about it a bit more, instead of using onReconnect are you perhaps supposed to use Meteor.status() instead?


Harry, I saw your comment above and made this change. I think you are correct. Because Meteor.status is a reactive variable, this will re-run anytime the connection status changes.

if (Meteor.isClient) {
    Tracker.autorun(function () {
        if (Meteor.status().connected) {
        } else {

Need Your Help

How to pass directives to an element in the directives template in AngularJS?

javascript angularjs angular-directive

I have a directive called step-field, in the template of the directive i have input or select elements that should sometimes have max-length or ng-required or some custom directive like