2017-10-18 14 views
0

의 속성 'getUniqueId'를 읽을 수 없습니다. 아무에게나 불편을 끼쳐 드려 죄송합니다.하지만이 도움이 정말로 필요합니다. 데이터베이스에서 채팅을 가져오고 싶습니다.하지만 이미 검색을 시도하고 있습니다. 문서, 나는 해결책을 발견했다고 가정합니다, 나는 보관 그룹 섹션에 대한 개발자 API converse.js 문서를 읽고, 난이 있어요 : 나는 그것을 시도정의되지 않은

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 

     }); 


    }); 

을하지만, 이 오류가 있습니다.

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 

이 질문이 다소 간단하거나 어리 석었지만 유감 스럽지만 converse.js를 사용하는 것이 정말 새로운데, 앞으로는 전체 기능과 설명서가 있기 때문에 앞으로 converse.js를 사용하고 싶습니다.

답변

0

Converse.js 플러그인의 메소드은 Converse.js 자체가 초기화 될 때 호출됩니다.

이것은 자동 또는 수동으로 발생하는지 여부와 관계없이 사용자가 로그인하기 전에 발생합니다.

사용자가 로그인하고 XMPP 연결 및 세션을 설정하기 전에 this._converse.api.archive.query({'with': '[email protected]'});으로 전화를 걸어야합니다.

대신에 connection 이벤트를 수신 한 다음 쿼리를 수행해야합니다.

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

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

감사 JC, 내가 맘에 문제가있어, 그냥 내 XMPP 서버가 항아리 지원하지 않는 것을 발견 : XMPP : MAM : 2, 그래서 'backfrom 데이터베이스를 검색 할 수 없습니다 – Prem