Soy un nuevo usuario en la pila, pero tengo un problema con MultiUserChat en la biblioteca aSmack 3.2.1 para android. Estoy usando el servidor "gtalk.google.com". Es un ejemplo sencillo y Soy sólo uno de cada habitación:XMPP aSmack El servidor MultiUserChat continúa enviando mensajes ya recibidos
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");
A petición:
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 justo, pero luego:
Recibí nuevamente "Mensaje de texto" con presencias:
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 lo recibí una y otra vez cada vez que el servidor me envía presencias. Continúa infinitamente con intervalo ~ 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án sin excepciones cuando me envíen la presencia.
¿Qué problema hay con mi MultiUserChat y qué demora en la entrega está haciendo aquí?
¡Gracias por la atención!
interesante, todo lo que puedo añadir es que [el estado código 101] (http://xmpp.org/registrar/mucstatus.html) significa "cambio de afiliación para la combinación MUC/usuario" – Flow
Flujo, gracias por sus comentarios. Pero hay un código de estado 110 no 101. El código de estado 110 significa que el envío de presencia es verdadero. – nizhney
IIRC, este es un comportamiento extraño en google talk, donde retransmiten tu presencia a intervalos, lo que causa rareza en la sala. – Zash