Hi there… I have this problem: I have a PresencePacketListener to listen presence packets and it can listen the packets when a user logs in and logs out but it can’‘t listen the packets that I send to the connection when I want to change a user status. I’'m sending the packet with this code:
connection.sendPacket(
new Presence( Presence.Type.AVAILABLE, “I’'m sleeping”, 5, Presence.Mode.AWAY )
);
Any ideas?
Thanks, Guille
Guille,
A working sample will help me understand better the problem. I’‘m not sure what you are trying to do but what do you mean by "it can’'t listen the packets that I send to the connection"? Asking the connection to send a Presence packet will not trigger your listener. Your listener will be triggered when a presence packet is received by Smack. You can use the Smack debugger to check that your client is in fact receiving a presence from the server.
Saludos,
– Gato
Gato,
All I want is to let a user change its status and the rest of the users to listen to that action. I thougth that the right way to do that was to send a Presence packet to the connection and add a packet listener to the connection, but it seems that is not the right way… What should I do? I’‘m not using a roster because I’'m not developing a IM app.
Thanks, Guille
I forgot to tell you that all the users involved are in the same muc…
Guille,
Since all your users are occupants of the same room you should try sending a presence to the room and adding ParticipantListeners to the MultiUserChat to get the updated presences.
This is an example of the presence you need to send to the room:
<presence to="myroom@conference.localhost/gato">
<show>away</show>
<priority>0</priority>
</presence>
Hope that helps,
– Gato
Yes Gato, it helped a lot!
Thanks one more time…
Saludos, Guille