2013-10-14 2 views
1

Это будет запрашивать весь список контактов в моем списке, но это позволяет мне запрашивать JID, а не полное имя. Как я могу запросить список и получить каждое имя?получить полное имя каждого пользователя в списке openfire xmpp strophe

$(document).bind('connected', function(){ 
    var iq = $iq({type: 'get'}).c('query', {xmlns: 'jabber:iq:roster'}); 
}); 

Thanks.

ответ

1
var iq = $iq({type: 'get'}).c('query', {xmlns: 'jabber:iq:roster'}); 
conn.sendIQ(iq, 
      function success(iq){ 
       $(iq).find('item').each(function() { //all contacts 
        var jid = $(this).attr('jid'); 
        var name = $(this).attr('name') || jid; 
        var subscr = $(this).attr('subscription'); //type subscription 
        console.log('contacts: jid:' + jid + ' Name:' + name); 
       }); 
      }, 
      function failure(iq){ 
       console.log(iq); 
      },30000/*timeout sendIQ*/ 
     ); 

Также вы можете смешать с

<iq from='[email protected]' 
    id='v1' 
    type='get'> 
    <vCard xmlns='vcard-temp'/> 
</iq> 

Чтобы получить визитную карточку пользователя каждого пользователя, а затем получить полное имя.

Попробуйте.

+0

да, но как я могу перевести это в Strophe? – leeshin

+1

По запросу jid невозможно, другое решение, если вы хотите заполнить, - это когда вы добавляете/обновляете свой список, вы можете указать имя как полное имя, таким образом: var contact = {jid: 'me @ jabber. org ', name:' My Full Name '}; var iq = $ iq ({type: 'set'}) .c ('query', {xmlns: 'jabber: iq: roster'}). C ('item', {jid: contact.jid, name: Контактное лицо}); – rubStackOverflow

+0

Но когда я запрашиваю имя списка не для каждого элемента. Я нашел это в реестре. <элемент JID = "sat4 @ canopus30" подписка = "из"> <элемент JID = "SAT2 @ canopus30" подписка = "и"> <элемент JID = "сидел @ canopus30" имя = "сидел" подписка = "из"> Друзья <элемент JID = "SAT3 @ canopus30" подписка = "и"> <элемент JID = "нулевой @ canopus30" спросите = "подписаться" подписной = "нет"> –

Смежные вопросы