XMPP aSmack El servidor MultiUserChat sigue enviando mensajes ya recibidos

Soy un nuevo usuario en la pila, pero tengo un problema con MultiUserChat en aSmack biblioteca 3.2.1 para android. Estoy utilizando el servidor "gtalk.google.com". Es un ejemplo simple y yo soy sólo uno en la habitación:

String room="[email protected]"; MultiUserChat muc = new MultiUserChat(connection,room); muc.join(userNameInRoom); muc.addMessageListener(new PacketListener() { @Override public void processPacket(Packet packet) { ... } }); 

Después:

  muc.sendMessage("Text message"); 

En Log:

 DEBUG/SMACK(281): 06:46:29 PM SENT (1140866576): <message id="gsMe7-18" to="[email protected]" type="groupchat"><body>Text message </body></message> DEBUG/SMACK(281): 06:46:29 PM RCV (1140866576): <message from="[email protected]/userNameInRoom" to="userName" type="groupchat"><body>Text message</body></message> 

Resultado: "Mensaje de texto" y es correcto, pero luego:

Recibí de nuevo "mensaje de texto" con presences:

 DEBUG/SMACK(281): 06:54:12 PM RCV (1140866576): <presence from="[email protected]/userNameInRoom" to="userName"><x xmlns= "vcard-temp:x:update"><photo/></x><x xmlns="http://jabber.org/protocol/muc#user"> <item affiliation="owner" role="moderator"/><status code="110"/></x></presence> DEBUG/SMACK(281): 06:54:12 PM RCV (1140866576): <message from="[email protected]/userNameInRoom" to="userName" type="groupchat"><body>Text message</body><delay stamp="2012-02-15T17:46:31Z" from="[email protected]" xmlns="urn:xmpp:delay"/><x stamp="20120215T17:46:31" from="[email protected]" xmlns="jabber:x:delay"/></message> 

Y me dieron una y otra vez cada vez que servidor enviar presencias a mí. Continúa infinitamente con un intervalo de ~ 5 minutos. Y sí en 30 minutos recibí ~ 6 mensajes "Mensaje de texto". Si envío más de 1 mensaje, todos estos mensajes se recibirían sin excepciones cuando la presencia me envíe.

¿Qué problema con mi MultiUserChat y qué entrega retrasada hacer aquí?

¡Gracias por la atención!

En caso de "@ conference.jabber.org" no encontré solución y decidí que el problema debido al servidor GTalk y la versión correcta de MultiUserChat es en caso de "@ groupchat.google.com".

He cambiado mi código de:

 room=roomName+"@conference.jabber.org"; MultiUserChat muc = new MultiUserChat(connection, room); muc.create(userName); muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); 

a:

 room="private-chat-" + UUID.randomUUID().toString() + "@groupchat.google.com"; MultiUserChat muc = new MultiUserChat(connection, room); muc.join(userName); muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); 

Y lo probé, pero tengo un nuevo problema: cuando el usuario recieve invita al mensaje y lo acepto, ambos clientes chocan con XmlPullException "END_TAG expected" y algo así como "</ stream: stream>" en última posición en logcat.

Comencé a google este problema y encontré la razón. He utilizado asmack de beem cliente (por cierto, antes de que asmack-7 utilizado asmack desarrollador) y cómo sé que se basa en smack 3.1 … He encontrado que smack 3.2.0 decidió este problema. Descargé la versión del flujo de asmack y estoy satisfecho con esto.

En conclusión quiero decir "Gracias !!!" Flow para la versión correcta de aSmack, que funciona mejor que otros.

Que no es debido a su cliente, y thats no es un error, Thats Debido a Configuración de su grupo GroupChat del historial configurado para enviar determinado número de historial de chat al entrar en la habitación

  • Documentación y depuración de aSmack Android
  • ¿Qué servicios basados ​​en la nube puedo usar para alojar el servidor XMPP requerido para conectarse a GCS CCS?
  • Vida de la batería de Android XMPP
  • ¿Es la mejor práctica para las conexiones móviles persistentes en Android?
  • Cómo saber Escribir Estado en XMPP openfire usando Smack
  • Cómo implementar XMPP para enviar notificaciones push
  • Mensajes perdidos sobre XMPP en el dispositivo desconectado
  • ¿Cómo enviar un mensaje XMPP cuando el remitente está fuera de línea?
  • Xmpp + openfire + confirmación del servidor al remitente
  • Creación de un servidor xmpp para google google anterior
  • GetSearchForm devuelve null cuando se utiliza UserSearch en XMPP con aSmack
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.