瀏覽代碼

MUC: wait for messages collection to be initialized

before processing MUC messages received prematurely due to SMACKS
resumption.
JC Brand 5 年之前
父節點
當前提交
58f6d36564
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      src/headless/converse-muc.js

+ 6 - 2
src/headless/converse-muc.js

@@ -2403,9 +2403,13 @@ converse.plugins.add('converse-muc', {
                 const muc_jid = Strophe.getBareJidFromJid(stanza.getAttribute('from'));
                 const muc_jid = Strophe.getBareJidFromJid(stanza.getAttribute('from'));
                 if (!_converse.chatboxes.get(muc_jid)) {
                 if (!_converse.chatboxes.get(muc_jid)) {
                     _converse.api.waitUntil('chatBoxesFetched')
                     _converse.api.waitUntil('chatBoxesFetched')
-                        .then(() => {
+                        .then(async () => {
                             const muc = _converse.chatboxes.get(muc_jid);
                             const muc = _converse.chatboxes.get(muc_jid);
-                            muc && muc.message_handler.run(stanza);
+                            if (muc) {
+                                await muc.initialized;
+                                await muc.messages.fetched
+                                muc.message_handler.run(stanza);
+                            }
                         });
                         });
                 }
                 }
                 return true;
                 return true;