Stanza에 대한 적절한 XMPP 클라이언트 응답은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/605177

  •  03-07-2019
  •  | 
  •  

문제

서버의 명단에서 연락처를 수동으로 삭제할 때 서버가 보내는 내용은 다음과 같습니다.

'<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을 기록 할 수있는 다른 클라이언트를로드하고 해당 클라이언트에서 수신 거부금을 보내고 로그에 표시된 코드를 복사하십시오.

그것은 당신이 올바른 스탠자를 얻는 데 도움이되거나 개점에서 비 호환성을 식별 할 것입니다 (가능하지만 누가 아는 사람).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top