2017-10-04 2 views
1

Smack Android 라이브러리를 사용하여 Ejabberd XMPP 서버에 다음 IQ 스탄자를 보내려고합니다. 어떻게 보낼 수 있습니까? Smack Android 라이브러리를 사용하여 XMPP IQ 스탠자를 서버로 보내는 방법은 무엇입니까?

<iq from='[email protected]' 
    to='[email protected]' 
    type='set' 
    id='E6E10350-76CF-40C6-B91B-1EA08C332FC7'> 

    <subscribe xmlns='urn:xmpp:mucsub:0' 
      nick='mynick' 
      password='roompassword'> 
    <event node='urn:xmpp:mucsub:nodes:messages' /> 
    <event node='urn:xmpp:mucsub:nodes:affiliations' /> 
    <event node='urn:xmpp:mucsub:nodes:subject' /> 
    <event node='urn:xmpp:mucsub:nodes:config' /> 
    </subscribe> 
    </iq> 

나는 https://docs.ejabberd.im/developer/xmpp-clients-bots/proposed-extensions/muc-sub/ 난 당신이 도움이 될 수 있습니다 확인하시기 바랍니다 다음 코드를 사용하여 수행 한

답변

0

에 설명 된대로 MUC/하위 이벤트 구독 싶다.

 try { 
       IQ iq=new IQ("mynick","urn:xmpp:mucsub:0") { 
        @Override 
        protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) { 
         xml.setEmptyElement(); 
         return xml; 
        } 
       }; 
       iq.setType(IQ.Type.get); 
       //add your urn:xmpp:muclight:0#affiliations extension element 
       iq.addExtension(); 
       iq.setTo(AppConstants.CHAT_HOSTNAME); 
       iq.setFrom(connection.getUser()); 
       debugLog("ping send stanza:"+iq.toXML()); 
       connection.sendStanza(iq); 
      } catch (SmackException.NotConnectedException e) { 
       e.printStackTrace(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
관련 문제