2013-10-14 4 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*/ 
     ); 

또한 당신의 vCard의 각 사용자의를 얻으려면

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

와 혼합 수 및 다음 전체 이름을 얻는다.

사용해보기.

+0

네,하지만 어떻게 스트로페 방식으로 번역합니까? – leeshin

+1

쿼리 jid로는 불가능합니다. 다른 솔루션으로는 전체 명단을 추가/업데이트 할 때 이름을 전체 이름으로 설정할 수 있습니다.이 방법은 다음과 같습니다. var contact = {jid : 'me @ jabber. org ', 이름 :'My Full Name '}}; '항목', {jid : contact.jid, name : var iq = $ iq ({type : 'set'}) 담당자 이름}); – rubStackOverflow

+0

하지만 모든 항목에 대해 명단 이름을 요구하지는 않습니다. 나는 이것을 로스터에서 발견했다. <항목 JID "에서"= "sat4의 @의 canopus30"가입 =>는 <항목 JID는 = "SAT2의 @의 canopus30는"가입 = "모두"> <항목 JID는 = 이름 "canopus30 @ 토는"= "앉아" 가입 => 친구 "에서" <항목 JID = "sat3의 @의 canopus30는"가입 => <항목 JID = "널 @의 canopus30" "둘 다" "구독"= 가입 = "없음"을 요구하지> –