فهرست منبع

Register presence and message handlers before getting the roster

Otherwise some presence notifications might be lost
JC Brand 12 سال پیش
والد
کامیت
53359b7ddc
2فایلهای تغییر یافته به همراه20 افزوده شده و 12 حذف شده
  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();