使用4.1.0 rc1在muc中接收消息

时间:2015-04-06 11:13:31

标签: xmpp smack

有人能告诉我如何使用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): 但是听众没有被称为

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

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

然后你会收到muc消息给听众。

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

答案 2 :(得分:0)

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

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


xmppConnection.addAsyncStanzaListener(stanzaListener, StanzaTypeFilter.MESSAGE);