2016-08-05 7 views
2

이이 명단이 standard specification에서Smack 라이브러리를 사용하여 다른 사용자에게 Custom IQ 스탠자를 보내는 방법은 무엇입니까? 그 XMPP 서버가 JID에 IQ의 연을 전달 있도록

<iq from="[email protected]/pda" id="rr82a1z7" 
type="get"> 
    <query xmlns="jabber:iq:roster"/> 
</iq> 

을 얻기를위한 샘플 IQ 스 D는, IQ 스탠자는 "TO"속성을 설정하여 특정 사용자에게 지시 할 수있다 (전체 재버 ID는)는 "TO"속성에 check specification

을 지정하지만 난이 IQ의 연을 쿼리 할 때에 "앨리스 wond @ 전달이

<iq from="[email protected]/pda" id="rr82a1z7" 
to="[email protected]/Smack" 
type="get"> 
    <UserDetails xmlns="http://www.test.org/User/"> 
     <userName>username</username> 
    </UserDetails> 
</iq> 

D 자 내 요구에 맞게 erland.lit "하지만 Openfire 서버에서 오류 상태"기능이 구현되지 않음 "인 IQ Stanzs를 수신합니다.

이 오류를 제거하고 결과를 얻을 수있는 방법이 있습니까?

나는이 tutorial을 따라 클라이언트를 생성했습니다.

커스텀 스탠자의 wireshark 흔적을 볼 수는 있지만 "myIQListener"는 호출되지 않습니다.

질문 : 내가 놓친 거지

  • 다른 중간 단계?
  • 다른 좋은 예가 있습니까?
+0

스탠자를 다른 명단으로 보내려면 명단 구독 목록에 있어야합니다. –

+0

@GirishKumar 아하, 정보를 주셔서 감사합니다, –

+0

그 예가 작동하는지 확인합니다. 이름 공간에서 오타가 발생하여 수정해야하는 하루가 걸렸습니다. 다시 한 번 오타에 대한 자신의 코드를 검사하는 것은 당신이 가지고있는 지식의 안전성을 느끼지 않고 우선해야 함을 증명합니다 :) –

답변

1

이 내가 해결 방법 내 자신의 문제.

  • 를 사용하여 전체 재버 ID (를 포함하여 자원)

  • 정확히 이 here

설명으로 사용자 정의 IQ 스 D 자신의 IQProvider 필터를 구현하고 그것을 당신의 연결을 추가 이해하지 않는 헤로인 라이브러리
0

당신은 <presence type="subscribe" to="[email protected]"/> 자신을 보내거나 다른 사용자의 명단 목록에있을 필요가해야

참조 : here

또는

Deny messages from non-roster users in Openfire

+1

나는 wireshark 추적에서 openFire Xmpp 서버가 클라이언트 주소 (full jabber ID)이 사양서에서도 https://tools.ietf.org/html/rfc6120#page-105에 "메시지가 인 경우 연결된 클라이언트 계정의 맨손으로 JID로 전송되지 않은 경우입니다. 메시지 스탠자를 'to'주소로 수신하면 서버는 을 의도 된 수신자에게 전달하거나 전달해야합니다 ( XML 스탠자와 관련된 일반 라우팅 및 전달 규칙에 대해서는 섹션 10 참조). –