문제
서버의 명단에서 연락처를 수동으로 삭제할 때 서버가 보내는 내용은 다음과 같습니다.
'<iq type="set" id="183-87" to="foo@edmund.local/hydra"><query xmlns="jabber:iq:roster"><item jid="bar@yahoo.edmund.local" name="baz" ask="unsubscribe" subscription="none"><group>Buddies</group></item></query></iq>'
'<iq type="set" id="187-88" to="foo@edmund.local/hydra"><query xmlns="jabber:iq:roster"><item jid="bar@yahoo.edmund.local" name="baz" subscription="none"><group>Buddies</group></item></query></iq>'
'<presence type="unsubscribed" to="foo@edmund.local" from="bar@yahoo.edmund.local"/>'
'구독 취소'존재 Stanza (RFC 3921에 따라 정확하다고 생각됨)로 응답하면 서버는 더 많은 '구독되지 않은'존재로 스팸을 계속합니다.
어느 쪽이든, 다음에 내 클라이언트가 로그인 할 때, 명단에는 아무것도 변경되지 않았습니다. 내가 뭔가 잘못하고 있습니까?
해결책
그것은 당신이 말하는 클라이언트 - 가입자이든 가입자인지에 따라 다릅니다.
.
클라이언트가 가입자 인 경우 아무것도 없습니다.
에 따르면 섹션 9.4, 가입자가 an을 보내는 경우 unsubscribe
요청, 또는 다른 원인이 클라이언트가 구독 취소되도록합니다. 서버는 요청을 승인/보고서를 unsubscribed
응답. 그것이 상호 작용의 끝입니다.
가입자가 다른 것을 보내는 경우 unsubscribe
받을 때마다 요청을받을 때마다 unsubscribed
서버에서 이전 구독이 제거되었다고 말하면 결코 끝나지 않을 것입니다.
.
클라이언트가 구독 노드 인 경우 unsubscribe
구독 제거가 허용되는지 확인하려면 일반 메커니즘 이외의 명단을 변경할 때 여전히 서 있는지 여부는 확실하지 않습니다.
9.4의 테이블을 읽는 것은 수신되지 않은 동안 가입자와 서버 간의 메시지에 대한 것입니다.
subscriber server subscribee
| -- unsubscribe --> | |
| | -- unsubscribe --> |
| | <- unsubscribed -- | (optional)
| | -- unsubscribed -> |
| <- unsubscribed -- | |
내 독서 섹션 8.6, 명단 제거는 다음과 같습니다.
subscriber server subscribee
| ----- remove ----> | |
| | -- unsubscribe --> |
| | -- unsubscribed -> |
| | -- unavailable --> |
| <- unsubscribed -- | |
| <-- unavailable -- | |
어느 고객이 요구하는 인정이 없습니다.
다른 팁
나는 당신에게 직접적인 답을 줄 수 없을 정도로 너무 녹슬었지만, 답이없는 몇 시간이 지났기 때문에 제안을하겠습니다 ...
Pidgin 또는 XMLStream을 기록 할 수있는 다른 클라이언트를로드하고 해당 클라이언트에서 수신 거부금을 보내고 로그에 표시된 코드를 복사하십시오.
그것은 당신이 올바른 스탠자를 얻는 데 도움이되거나 개점에서 비 호환성을 식별 할 것입니다 (가능하지만 누가 아는 사람).