Pergunta

Estou tendo muita dificuldade em fazer funcionar a função 'Anex ()' de Strophe.

Estou trabalhando em uma rede social em que os usuários estarão navegando páginas e, ao mesmo tempo, manterão a conexão de bate -papo. Não quero reconectar/reautorizar em todas as páginas, então, de acordo com este link, http://groups.google.com/group/strophe/browse_thread/thread/430da5e788278f3a/93c48c88164f382f?show_docid=93c48c88164f382f&fwc=1, estou armazenando o SID e me livrará em um biscoito onunload.

Na página seguinte, quando tento usar o novo SID e me livrar (depois de incrementá -lo em 1), minha sessão já foi destruída. Ejabberd relata "Erro no http put. Motivo: Bad_key"

WTF está acontecendo?

Foi útil?

Solução 2

Consegui resolver o problema.

O RID estava sendo duplo incrementado entre as cargas de página. Ao incrementá -lo apenas quando a sessão, o anexo começou a funcionar.

Não sei por que a sessão foi cancelada, mas aqui está o que aconteceu:

  1. Como o RID é +2 a mais do que os anteriores, Ejabberd armazena a solicitação no buffer e não a encaminha aos clientes
  2. Os próximos 2 pedidos também são armazenados
  3. Aquele depois disso faz com que Ejabberd cancele a sessão

Alguma pista?

Outras dicas

Sem mais informações de registro de Ejabberd ou Firebug, isso será difícil de diagnosticar. O livre correto está realmente armazenado no biscoito? O que Ejabberd acha que é a última estrofe que você enviou e que valor de livros ele tem? Qual é a primeira estrofe e o primeiro valor de Rid na nova página? Quanto tempo entre essas duas estrofes?

Atualizado: o motivo pelo qual a sessão é cancelada é devido ao modelo de segurança do BOSH. Efetivamente, o par Sid e Rid são secretos. Se você conhece o par, pode anexar à sessão. Para manter as pessoas serem capazes de adivinhar, o RID é escolhido aleatoriamente de um espaço muito grande. Se você enviar um livro para fora de uma janela muito pequena do RID atual, ela desconectará a sessão. A janela é geralmente (livrar, livrar + 5) ou mais.

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