使用4.1.0 rc1在muc中接收消息

问题描述 投票:1回答:3

谁能告诉我如何使用Smack 4.1.0 rc1在muc中接收消息?

我可以使用下面的代码发送消息。

Message message = new Message();
        message.setType(Message.Type.groupchat);
        message.setBody(strMessage);
        message.setTo(roomJid);
 multiUserChat.sendMessage(message);

我使用下面的代码,但无法得到消息。

    multiUserChat = multiUserChatManager.getMultiUserChat(roomJid);
    multiUserChat.addMessageListener(new MessageListener() {
        @Override
        public void processMessage(Message message) {
            Log.i(Constant.TAG, "processMessage");
        }
    }); 

我的调试打开,我可以看到应用程序正在接收消息(D / SMACK(6098):RECV(1):)但是监听器没有被调用

xmpp smack
3个回答

0
投票

在将消息监听器添加到muc之前,将存在/加入发送到muc。

那么你将获得muc消息进入监听器。

如果没有发送存在或加入muc,你就无法将消息传入监听器,但你可以在logcat中看到。


0
投票

我正在使用节监听器并能够接收MUC消息。

 final  StanzaListener stanzaListener = new StanzaListener() {
        @Override
        public void processStanza(Stanza packet) throws SmackException.NotConnectedException, InterruptedException {  .. }


xmppConnection.addAsyncStanzaListener(stanzaListener, StanzaTypeFilter.MESSAGE);
© www.soinside.com 2019 - 2024. All rights reserved.