Android:XMPP MUCLight Smack收听群聊信息

时间:2018-05-11 06:58:49

标签: android xmpp smack multiuserchat mongoose-im

在XMPP服务中,我连接到xmpp服务器,一旦建立连接,我将获取当前所有的组,并为每个组添加消息监听器。
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); } } }); } }

在服务中这是我如何将监听器添加到muclight房间,当聊天活动未打开时我收到消息,即,当用户处于最近的聊天列表活动时,我收到消息,但是一打开聊天活动我没有收到任何数据包或消息,

addMessageListener方法实际上将消息监听器放入

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

所以就像处理每个组的所有听众一样,但我仍然无法使这个事情发挥作用

0 个答案:

没有答案