XMPP 핵심 프로토콜 학습 소감 2

4441 단어
4. 자원 바인딩
 
서버가 클라이언트에게 리소스 바인딩 기능을 선언합니다.
 
<stream:stream
    xmlns='jabber:client'
    xmlns:stream='http://etherx.jabber.org/streams'
    id='c2s_345'
    from='example.com'
    version='1.0'>
<stream:features>
  <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
</stream:features>

클라이언트가 리소스 바인딩 요청
<iq type='set' id='bind_1'>
  <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
</iq>

또는 바인딩된 리소스 ID 지정
<iq type='set' id='bind_2'>
  <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
    <resource>resourceid</resource>
  </bind>
</iq>

두 가지가 있습니다.
성공
서버 피드백 바인딩 성공
 <iq type='result' id='bind_2'>
  <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
    <jid>[email protected]/resourceid</jid>
  </bind>
</iq>

이 때 id가 서버에서'bind_로 수정되었음을 주의하십시오2'지정한 리소스id 대신
실패
리소스 ID 처리 불가
  <iq type='error' id='bind_2'>
  <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
    <resource>someresource</resource>
  </bind>
  <error type='modify'>
    <bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
  </error>
</iq>

또는
클라이언트가 리소스를 바인딩할 수 없습니다.
  <iq type='error' id='bind_2'>
  <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
    <resource>someresource</resource>
  </bind>
  <error type='cancel'>
    <not-allowed xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
  </error>
</iq>

또는 자원 ID가 이미 사용 중입니다.
<iq type='error' id='bind_2'>
  <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
    <resource>someresource</resource>
  </bind>
  <error type='cancel'>
    <conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
  </error>
</iq>

 
 

좋은 웹페이지 즐겨찾기