Ping timeout

Contenido archivado

El contenido de la web se encuentra archivado y no se podrá crear nuevo contenido. Más información.

Tagged:

Buenas, estoy buscando información sobre que hacer para evitar la desconexión por inactividad. He visto que algunos servidores, como el de Jabber.org envían periodicamente al cliente una línea en blanco, pero otros, como el de Jabberes.org no lo hacen, y si tu cliente no envía nada durante un rato, se desconecta.

Para solucionarlo envío periodicamente un *iq* */iq*, pero algunos servidores como el de Jabberes.org me devuelven un error como este:

*error code="400" type="modify"**bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/**/error*

Y no quiero hacer chapuzas que funcionen bien en unos servers y en otros no.

He visto que el PSI tiene una opción, "Send 'Keep-alive' packets (for NAT timeout)", pero activando el debug no veo que mande nada. Sin embargo algo debe mandar, porque no se desconecta.

¿Alguien sabe que es lo que se envía para evitar la desconexión?

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Espacio en blanco

Yo lo he solucionado mandando un paquete con un espacio (un espacio de toda la vida, caracter 32 en decimal o 20 en hexadecimal) cada 5 minutos. Es lo que hace el cliente de Google.

En otros clientes no he visto nada, se ve no debugean ese envío, pero sniffeando la red con ethereal y viendo lo que hace google talk... me di cuenta. Lo he probado enviando un \n e igualmente no me desconecto, pero al ifnal me decidí por el espacio al igual que hace gtalk.
_________________________
JID: xergio@jabberland.com Estado de jabber

______________
JID: xergio@jabberland.com Estado
Mi avatar: Avatar

que hacer para evitar la

que hacer para evitar la desconexión por inactividad

Depende de qué inactividad estes hablando. Inactividad del usuario Jabber (nivel de protocolo XMPP) o inactividad del cliente Jabber (nivel de protocolo TCP).

Si dices que el keep-alive de Psi no muestra nada en la consola XML, será porque es un keep-alive a nivel de conexión TCP. Para espiar ese tráfico puedes usar el Ethereal.

Algo así imaginaba. No sé

Algo así imaginaba. No sé como mandar un "keep-alive" con el lenguaje que estoy usando (mIRC scripting), así que tendré que mandar periodicamente algún comando al servidor cuando haya inactividad. Gracias por la ayuda.