Sono un nuovo utente sullo stack, ma ho un problema con MultiUserChat nella libreria aSmack 3.2.1 per Android. Sto utilizzando il server "gtalk.google.com". E 'un esempio semplice e I'am sola in camera:XMPP aSmack MultiUserChat server continua a inviare messaggi già ricevuti
String room="[email protected]";
MultiUserChat muc = new MultiUserChat(connection,room);
muc.join(userNameInRoom);
muc.addMessageListener(new PacketListener()
{
@Override
public void processPacket(Packet packet)
{
...
}
});
Dopo:
muc.sendMessage("Text message");
In 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>
Risultato: "Messaggio di testo" ed è giusto, ma poi:
Ho ricevuto nuovamente "Messaggio di testo" con presenze:
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>
E l'ho ricevuto ancora e ancora ogni volta che il server invia presenze a me. Continua all'infinito con intervallo ~ 5 minuti. E sì in 30 minuti ho ricevuto ~ 6 messaggi "SMS". Se invio più di 1 messaggio, tutti questi messaggi verranno ricevuti senza eccezioni quando la presenza viene inviata a me.
Quale problema con il mio MultiUserChat e quali sono le consegne ritardate?
Grazie per l'attenzione!
Interessante, tutto quello che posso aggiungere è che [lo stato codice 101] (http://xmpp.org/registrar/mucstatus.html) significa "cambio di affiliazione per la combinazione MUC/utente" – Flow
Flow, grazie per il commento. Ma c'è il codice di stato 110 e non 101. Il codice di stato 110 indica che l'invio di presenza è vero. – nizhney
IIRC, questo è un comportamento strano in google talk, in cui ri-trasmettono la tua presenza a intervalli, che provoca stranezze con la stanza. – Zash