Browse Source

Change our presence package

tmeasday:presence was doing unnecessary ping calls to the server every
5 seconds instead of using the status of the DDP connection (this
could save a fair amount of traffic in case of important server load).

I guess this change also fixes #221, but since no issue reproduction
was provided, it's difficult to tell.
Maxime Quandalle 9 years ago
parent
commit
521e661dcb

+ 1 - 1
.eslintrc

@@ -113,7 +113,7 @@ globals:
   Mousetrap: false
   Picker: false
   Presence: true
-  Presences: true
+  presences: true
   Ps: true
   ReactiveTabs: false
   SimpleSchema: false

+ 1 - 1
.meteor/packages

@@ -44,6 +44,7 @@ reactive-dict
 session
 tracker
 underscore
+3stack:presence
 alethes:pages
 arillo:flow-router-helpers
 audit-argument-checks
@@ -56,7 +57,6 @@ mquandalle:moment
 ongoworks:speakingurl
 raix:handlebar-helpers
 tap:i18n
-tmeasday:presence
 
 # UI components
 blaze

+ 1 - 1
.meteor/versions

@@ -1,3 +1,4 @@
+3stack:presence@1.0.3
 accounts-base@1.2.1-rc.2
 accounts-password@1.1.2-rc.1
 aldeed:collection2@2.3.3
@@ -126,7 +127,6 @@ tap:i18n@1.5.1
 templates:tabs@2.2.0
 templating@1.1.2-rc.4
 templating-tools@1.0.0-rc.0
-tmeasday:presence@1.0.6
 tracker@1.0.8-rc.0
 ui@1.0.7-rc.0
 underscore@1.0.4-rc.0

+ 1 - 1
client/components/users/userAvatar.js

@@ -16,7 +16,7 @@ Template.userAvatar.helpers({
   },
 
   presenceStatusClassName() {
-    const userPresence = Presences.findOne({ userId: this.userId });
+    const userPresence = presences.findOne({ userId: this.userId });
     if (!userPresence)
       return 'disconnected';
     else if (Session.equals('currentBoard', userPresence.state.currentBoardId))

+ 7 - 0
client/config/presence.js

@@ -0,0 +1,7 @@
+Presence.configure({
+  state() {
+    return {
+      currentBoardId: Session.get('currentBoard'),
+    };
+  },
+});

+ 0 - 7
collections/users.js

@@ -145,10 +145,3 @@ if (Meteor.isServer) {
     });
   });
 }
-
-// Presence indicator
-if (Meteor.isClient) {
-  Presence.state = () => {
-    return { currentBoardId: Session.get('currentBoard') };
-  };
-}

+ 1 - 1
server/publications/boards.js

@@ -141,7 +141,7 @@ Meteor.publishComposite('board', function(boardId) {
         // Presence indicators
         children: [{
           find(user) {
-            return Presences.find({userId: user._id});
+            return presences.find({userId: user._id});
           },
         }],
       },