Pergunta

Aqui está o que o servidor está enviando-me (openfire) quando eu excluir manualmente um contato a partir da lista no servidor:

'<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"/>'

Se eu responder com uma estrofe presença 'unsubscribe' (que eu acho que está de acordo correta para RFC 3921), o servidor mantém me spam com mais presenças 'sobras'.

De qualquer maneira, a próxima vez que meus logs do cliente em, nada mudou na lista. Estou fazendo algo errado?

Foi útil?

Solução

Depende qual cliente você está falando -. Se é o assinante ou o subscribee

.

Se o cliente é assinante, então nada:

De acordo com a seção 9.4 , se o assinante envia um unsubscribe pedido, ou qualquer outra coisa faz com que o cliente a ser sobras, o servidor deve reconhecer o pedido / comunicar a alteração do estado com uma resposta unsubscribed. Isso é o fim da interação.

Se o assinante envia um outro pedido unsubscribe cada vez que for informado que ele recebe um status unsubscribed do servidor dizer-se que uma assinatura anterior foi removido, então ele nunca vai acabar.

.

Se o cliente é o nó subscrito, então ele pode ser enviado um unsubscribe para confirmar que a remoção da assinatura é permitido, mas se isso ainda está de pé quando você está mudando o exterior roster do mecanismo normal eu não tenho certeza.

A minha leitura da tabela em 9,4 é para as mensagens entre subscribee e servidor durante cancelamento é:

subscriber            server             subscribee
    | -- unsubscribe --> |                    |
    |                    | -- unsubscribe --> |
    |                    | <- unsubscribed -- | (optional)
    |                    | -- unsubscribed -> |
    | <- unsubscribed -- |                    |

A minha leitura da seção 8.6 , remoção lista é a seguinte:

subscriber            server             subscribee
    | ----- remove ----> |                    |
    |                    | -- unsubscribe --> |
    |                    | -- unsubscribed -> |
    |                    | -- unavailable --> |
    | <- unsubscribed -- |                    |
    | <-- unavailable -- |                    |

Com nenhuma confirmação exigida por qualquer cliente.

Outras dicas

Estou enferrujado demais para ser capaz de dar-lhe uma resposta direta, mas desde já faz algumas horas sem respostas deixe-me fazer uma sugestão ...

Coloque-se pidgin ou algum outro cliente que pode registrar a xmlstream, enviar o unsubscribe desse cliente, e depois copiar o código no registro.

que quer ajudá-lo a obter as estrofes corretas ou ele vai identificar uma incompatibilidade na openfire (improvável, mas quem sabe).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top