Mensajes perdidos con aSmack

estoy usando aSmack en mi aplicación de Android para recibir mensajes de mi Desktop-Jabber-client. Esto funciona bien e incluso si mi teléfono Android está desconectado (después de que la conexión se cerró correctamente), recibirá los mensajes sin conexión después del siguiente inicio de sesión.

Pero cuando entro en el modo de avión en el teléfono o apagar el teléfono para que la conexión se cierre abruptamente (sin llamar a disconnect() en el objeto de Connection ) el teléfono permanece "en línea" en la lista de contactos de mi Desktop Jabber -Client por un tiempo y puedo enviarle mensajes. Sin embargo estos mensajes nunca llegan. Aunque el teléfono se conecte de nuevo al servidor. Estos mensajes se pierden.

¿Alguien sabe cómo solucionar este problema? Perder mensajes en un chat no es una opción. 🙂

EDIT: Añadido Test-Code
BroadcastReceiver: http://pastebin.com/cFLzGXgy
Servicio: http://pastebin.com/wLpQCQfT

El primero es un BroadcastReceiver que inicia el servicio (segundo URL) cada vez que el teléfono está conectado a una red.

PS: ¡Esto es sólo un código de prueba! Debe cambiar el servidor / nombre de usuario / contraseña si desea usarlo / probarlo.

Puede intentar enviar el mensaje entregado del cliente b al cliente A cuando llegue el mensaje. El problema es si el cliente A está desconectado (sin interrupción de conexión), la confirmación entregada no se envía hasta que el usuario reciba el mensaje y el cliente B no pueda volver a enviar el mensaje.

usted puede intentar enviar el reconocimiento de recibir el mensaje usando los acontecimientos del mensaje de Smackx esto asegurará que el mensaje se entrega más que usted toma la acción correctiva.

este problema se produce cuando se rompió la conexión. Necesita "Gestión de Flujo" XEP-198 permitió conexiones para lograr estos mensajes. refiérase a este blog: http://op-co.de/blog/posts/XEP-0198/ Básicamente permite el reconocimiento de stanzas y la reanudación de secuencia, que es exactamente lo que usted quiere hacer en case.so debe esperar hasta que smack se lanzará 4.1.

  • Cómo registrar un nuevo usuario en XMPP usando (a) Smack library
  • ¿Cómo podemos acceder a los mensajes del archivo en la aplicación android desde el servidor xmpp
  • Cómo utilizar XEP 198 (Gestión de flujo) de smack 4.1?
  • XMPP con Java Asmack biblioteca que admite X-FACEBOOK-PLATFORM
  • Cómo saber Escribir Estado en XMPP openfire usando Smack
  • ¿Cómo puedo agregar un atributo personalizado (nick) en mi etiqueta de mensaje XMPP, en Smack 4.1
  • Obtener usuarios en línea (entradas de la lista) usando smack 4.1 en android
  • Smack "Debe tener un conjunto JID local (usuario)" error
  • ¿Cómo implementar el estado de lectura de mensajes como whatsapp blue tick mark?
  • Autenticar a Google Talk (XMPP, Smack) mediante un authToken
  • Carga de Vcards con Smack (Android) en Openfire Server
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.