2013-10-14 62 views

回答

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',名稱:'我的全名'}; ({'item',{jid:contact.jid,name:');} {}} {var iq = $ iq({type:'set'})。c''query'{xmlns:'jabber:iq:roster'})聯繫人姓名}); – rubStackOverflow

+0

但是,當我要求一個花名冊不是每個項目。 我在名冊上找到了這個。 <項JID = 「sat4 @ canopus30」 訂閱= 「來自」> <項JID = 「SAT2 @ canopus30」 訂閱= 「兩者」> <項JID = 「坐在@ canopus30」 名稱= 「SAT」認購= 「從」> 朋友 <項目JID = 「SAT3 @ canopus30」 訂閱= 「既」> <項目JID = 「空@ canopus30」 問= 「訂閱」 訂閱= 「無」> –