2009-06-03 3 views
0

하나, 누구의 '구독'속성 값을재버 프로토콜 문제 내 재버 로봇의 연락처

는 재버 프로토콜에 따라

말은, '을'이다 내가 상대방의 계정에 로그인 할 때, 로봇은 상대방의 온라인 상태, 에 가입했지만 상대방은 내 로봇에 가입하지 않았다. ****

그러나

로봇이 온라인 상태임을 알 수 있습니다.

왜 이런가요?

jabber 프로토콜이 현재 혼란 상태에 있습니까?

+0

이 XMPP에도 태그를 지정해야합니다. –

답변

1

내가 XMPP를 조롱 한 지 오래되었지만 사양을 빨리 다시 읽으면 "~ to"이라는 의미가 혼재하고 있다고 생각합니다. 사용자가 로봇의 명부에 "to"로 표시되면 사용자가 로봇의 존재를 따르고 있다는 것을 의미합니다. "from"은 로봇이 사용자 계정을 따르거나 현재 사용자 스탠자를 받음을 의미합니다.

사용자의 명부가 어떻게 생겼는지 알고 계십니까? 일들이 동기화되면 사용자의 명단에 로봇이 "보낸 사람"으로 나열되어야합니다.

+0

오, 맞아, 섞여 버렸어.하지만 내 로봇 계정을 통해 온라인에서 사용자 계정을 볼 수 있고 그 사용자 계정을 여러 번 다시 구독했지만 효과가 없다고 말하면 '구독'이라고합니다. 여전히 '~'. – omg

3

"내 봇이 해안에 가입했습니다"또는 "해안에 내 봇에서 가입이 있습니다"라고 말하면 "출발"과 "끝"이 더 적합합니다. 로봇의 명부가있는 경우

그래서 : 그 해안의 명단을 가정

<item jid='[email protected]' subscription='to'/> 

그런 다음 봇은 해안의 존재를 볼 수 있지만 해안는 봇의 존재를 볼 수 없습니다 것은 가지고

<item jid='[email protected]' subscription='from'/> 

그것은이다 네트워크 문제 등으로 인해 이러한 상태가 동기화되지 않을 수 있습니다. 이러한 경우, 문제를 해결하는 가장 쉬운 방법은 (효과적으로 다른 쪽의 항목을 제거 결국합니다) 항목, 다음 다시 추가 (자세한 내용은 RFC 3921bis, section 2.5.1 참조)을 제거하는 것입니다

<iq from='[email protected]/background' 
    id='delete_1' 
    type='set'> 
<query xmlns='jabber:iq:roster'> 
    <item jid='[email protected]' subscription='remove'/> 
</query> 
</iq> 
<presence type='subscribe' 
      from='[email protected]/background' 
      to='[email protected]'/> 

명심해야 할 점은 가입이 표시된 방향 일지라도 로봇은 보트에 가입하지 않아도 쇼어가 두 곳의 존재를 볼 수있는 해안으로 향하는 존재를 보낼 수 있습니다. 봇의 프로토콜 로그를 확인하면 다음과 같은 메시지가 표시됩니다.

<presence to='[email protected]'/> 
+0

좋은 발언! 당신은 네트워크 문제 등, 빠른 수정은 "양면"다음 다시 추가 제거하는 것입니다.하지만 실질적으로, 다른 측면은 사용자이므로 약간 적용되지 않는 것 같아요? 다른 해결책이 있습니까? – omg

+0

측면에서 제거하면 물건을 고정시키기에 충분할 정도로 상대방을 제거해야합니다. 내 답변에 대한 프로토콜 예제를 추가했습니다. –

+0

조 감사합니다!또 다른 질문이 있습니다. 가끔 다른 구독자가 처음으로 구독을 거부하면 이후 구독이 제대로 작동하지 않을 것입니다.이를 수정하는 방법은 무엇입니까? – omg

관련 문제