Explorar el Código

Register presence and message handlers before getting the roster

Otherwise some presence notifications might be lost
JC Brand hace 12 años
padre
commit
53359b7ddc
Se han modificado 2 ficheros con 20 adiciones y 12 borrados
  1. 6 0
      CHANGES.rst
  2. 14 12
      converse.js

+ 6 - 0
CHANGES.rst

@@ -1,6 +1,12 @@
 Changelog
 =========
 
+0.5.3 (Unreleased)
+------------------
+
+- Register presence and message handlers before fetching the roster. Otherwise
+  some presence notifications might be missed. [jcbrand]
+
 0.5.2 (2013-08-05)
 ------------------
 

+ 14 - 12
converse.js

@@ -2626,18 +2626,20 @@
                     $.proxy(this.roster.subscribeToSuggestedItems, this.roster),
                     'http://jabber.org/protocol/rosterx', 'message', null);
 
-                this.connection.roster.get($.proxy(function (a) {
-                    this.connection.addHandler(
-                            $.proxy(function (presence) {
-                                this.presenceHandler(presence);
-                                return true;
-                            }, this.roster), null, 'presence', null);
-                    this.connection.addHandler(
-                            $.proxy(function (message) {
-                                this.chatboxes.messageReceived(message);
-                                return true;
-                            }, this), null, 'message', 'chat');
-                }, this));
+                this.connection.addHandler(
+                        $.proxy(function (presence) {
+                            this.presenceHandler(presence);
+                            return true;
+                        }, this.roster), null, 'presence', null);
+
+                this.connection.addHandler(
+                        $.proxy(function (message) {
+                            this.chatboxes.messageReceived(message);
+                            return true;
+                        }, this), null, 'message', 'chat');
+
+                this.connection.roster.get(function () {});
+
                 $(window).on("blur focus", $.proxy(function(e) {
                     if ((this.windowState != e.type) && (e.type == 'focus')) {
                         converse.clearMsgCounter();