2017-10-18 6 views
0

sorry, um irgendjemanden zu ärgern, aber ich benötige wirklich Hilfe für dieses, ich will Chat von der Datenbank holen (die ich bereits diese Frage vorher stelle), aber ich versuche zu googeln und alles zu lesen Dokumentation, und ich nahm an, dass ich die Lösung gefunden zu haben, las ich die converse.js Dokumentation über Entwickler api, in dem Archivierungsgruppe Abschnitt, und ich habe diese:Kann Eigenschaft 'getUniqueId' von undefined nicht lesen

require(['converse'], function (converse) { 

converse.plugins.add('myplugin', { 
    initialize: function() { 

    this._converse.api.archive.query({'with': '[email protected]'}); 

    } 
}); 


     converse.initialize({ 

       jid: '[email protected]', 
       authentication: 'prebind', 
       prebind_url: 'bind/bind.php', 
       allow_logout: false, 
       debug : true, 
       whitelisted_plugins: ['converse-inverse','converese-mam','converse-singleton','converse-muc-embedded','myplugin'], 
       archived_messages_page_size : 20, 
       message_archiving : "always", 
       auto_list_rooms: false, 
       show_chatstate_notifications:true, 
       message_carbons : true, 
       sounds_path : "sounds/", 
       auto_reconnect : true, 
       use_vcard : true, 
       auto_subscribe: false, 
       keepalive : true, 
       show_send_button:true, 
       archived_messages_page_size : 20, 
       bosh_service_url: 'http://localhost:5280/http-bind', 
       hide_muc_server: false, 
       play_sounds : true, 
       show_controlbox_by_default: false, 
       xhr_user_search: false 

     }); 


    }); 

ich es versuchen, aber Ich habe diesen Fehler:

Cannot read property 'getUniqueId' of undefined 
    at Object._converse.queryForArchivedMessages (converse-mam.js:266) 
    at Object.initialize (dev.html:30) 
    at PluginSocket.initializePlugin (pluggable.js:196) 
    at arrayEach (lodash.js:537) 
    at Object.forEach (lodash.js:9359) 
    at PluginSocket.initializePlugins (pluggable.js:227) 
    at Object.initPlugins (converse-core.js:1854) 
    at Object._converse.initialize (converse-core.js:1875) 
    at Object.initialize (converse-core.js:2037) 
    at dev.html:36 

es tut mir leid, wenn diese Frage ein wenig einfach oder dumm ist, aber ich wirklich neu in der Verwendung von converse.js, und ich wirklich gerne zu verwenden und erfahren Sie mehr über converse.js in der Zukunft, weil es vollständige Funktionen und Dokumentation.

Antwort

0

Die initialize Methode eines Converse.js Plugin aufgerufen wird, wenn Converse.js selbst initialisiert wird.

Dies geschieht, bevor der Nutzer angemeldet ist (unabhängig davon, ob das geschieht automatisch oder manuell).

Sie rufen also this._converse.api.archive.query({'with': '[email protected]'}); an, bevor der Benutzer angemeldet wurde und eine XMPP-Verbindung und -Sitzung eingerichtet wurde.

Stattdessen sollten Sie zuerst auf das Ereignis connection warten und dann Ihre Abfrage durchführen.

converse.plugins.add('myplugin', { 
    initialize: function() { 
     var _converse = this._converse; 

     _converse.on('connected', function() { 
      _converse.api.archive.query({'with': '[email protected]'});  
     }); 
    } 
}); 
+0

dank jc, bekam ich Probleme mit mam, und gerade herausgefunden, dass mein xmpp Server nicht Urne unterstützt: xmpp: mam: 2, so ‚kann es nicht backfrom Datenbank abrufen – Prem

Verwandte Themen