1

In XMPP service I connect to xmpp server, and once the connection is made I fetch all the groups that I am currently in, and add message listener to every group.
List<Jid> occupiedRooms = multiUserChatLightManager.getOccupiedRooms(JidCreate.domainBareFrom(ConstantXMPP.XMPPService.MUCLightService)); for (Jid jid : occupiedRooms) { MultiUserChatLight multiUserChatLight = multiUserChatLightManager.getMultiUserChatLight(JidCreate.entityBareFrom(jid.toString())); MUCLightRoomConfiguration configuration = multiUserChatLight.getConfiguration(); multiUserChatLight.addMessageListener(new org.jivesoftware.smack.MessageListener() { @Override public void processMessage(Message message) { Log.e("Group message/n content", "" + message.toXML()); if (message.getBody() != null && message.getBody().length() > 0) { Log.e("Message Sender", message.getFrom().asBareJid().toString()); Log.e("Text Message", message.getBody()); handleGroupTextMessage(message); } } }); } }

In service this is how i am adding listeners to the muclight room and i am getting messages when the chat activity is not open i.e, i get the messages when the user is in recent chat list activity, but as soon as i open the chat activity I don’t receive any packet or message,

addMessageListener method actually put the message listener into

Set<MessageListener> messageListeners = new    CopyOnWriteArraySet<MessageListener>();

so it is like handling all the listeners for each and every group, but still i cannot make this thing work

Sidhant Rajora
  • 307
  • 4
  • 16

0 Answers0