Ticket #2303 (new melhoria)

Opened 6 years ago

Implementação de XMPP Ping nos módulos do Expresso Messenger

Reported by: lucas.carraro Owned by: ninguem
Priority: normal Milestone: Backlog do Produto
Component: ExpressoMessenger Version:
Severity: média Keywords:
Cc: WorkGroup:

Description

Conforme discutido na lista.


Fala pessoal, Bom dia,

A extensão de ping para o XMPP pelo que eu entendi foi feito para resolver alguns problemas.

  • Usuários que não estão mais online mas o cliente só descobre quando envia uma mensagem para ele. O caso do falso online que acontecia bastante no ICQ ( putz tou ficando velho :-) )
  • Existem certos tipos de firewall em que se não é mandado nenhuma informação por um tempo ele fecha a conexão ( Este negócio funcionaria tipo um keep alive )
  • Uma proteção conta DoS já que se o cliente não responde o servidor pode detonar a conexão dele.
  • Diminuição da carga sobre o servidor já que ele mataria inativos.

Nilton, o problema acontece com os 2 messengers ( Applet e BOSH).

Eu fiquei curioso pra saber se este negócio era compatível com BOSH e acabei achando um cliente XMPP BOSH , JWChat e vi que esta extensão é válida para BOSH também. Aliás muito bom o JWChat

Alexandre você acha que seria possível implementar isto nos módulos de XMPP do Expresso ? Posso criar um ticket ?

Se eu desabilito o "mod_ping" aqui no meu caso, o meu firewall fica chutando as conexões dos clientes a toda hora. Aqui o pessoal usa de tudo como cliente. O mod_ping pelo que parece funciona legalzinho com a maioria dos clientes.

Em 28-10-2011 10:08, Alexandre Luiz Correia escreveu:

Lucas ..

Como o Nilton disse nos usamos a versão 2.1.0 do ejabberd, mas não foi habilitado o uso deste módulo (mod_ping). Veja nesta lista os protocolos implementados www.ejabberd.im/protocols.

Quanto a este modulo, verifique no manual ( www.process-one.net/docs/ejabberd/guide_en.html#htoc51 ) a sua configuração. Este modulo é uma implementação da especificação XEP-0199 (xmpp.org/extensions/xep-0199.html ).

Sugiro que vc desabilite este módulo ping do ejabberd, pois se o servidor ficar enviando ping para os clientes conectados para assim verificar se o mesmo esta conectado ou não, este fluxo xml não está sendo tratado para enviar a resposta, consequentemente as conexões serão finalizadas.

Só lembrando que o modulo feito em java do expresso messenger usa os recursos da propria maquina para fazer a conexão e modulo sem java utiliza o BOSH, ou seja a conexão do primeiro só é finalizada ( em condições normais ) quando é fechada e a do segundo quando a conexão não foi feita dentro do limite especificado.

Habilitar este modulo para ficar enviando ping, acho desnecessário neste momento.

Alexandre Correia

Em 28/10/2011 às 08:49 horas, infra@… escreveu:

Lucas,

Usamos o Ejabberd 2.1.0 aqui, mas não temos o mod_ping habilitado. Sabe me dizer como o Ejabberd se comporta sem este módulo? Outra pergunta: O mesmo acontece para a versão SEM JAVA do Expresso Messenger?

Att, Nilton

Em 27/10/2011 às 21:32 horas, infra@… escreveu:

Olá a todos,

Boa noite No meu ejabberd estava configurado: ejabberd.cfg

{mod_ping, [{send_pings, true}, {ping_interval, 240}, {timeout_action, kill}]},

E estava acontecendo um comportamento esquisito. Os clientes utilizando o

Expresso Messenger ( Applet e javascript/AJAX ) eram desconectados em 4 minutos sem uso.

Troquei para:

{mod_ping, [{send_pings, true}, {ping_interval, 240}, {timeout_action, none}]},

E as desconexões pararam de acontecer. A minha pergunta é o applet não suporta este ping xmpp ? Seria fácil de implementar ?

Note: See TracTickets for help on using tickets.