谁能告诉我如何使用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):)但是监听器没有被调用
在将消息监听器添加到muc之前,将存在/加入发送到muc。
那么你将获得muc消息进入监听器。
如果没有发送存在或加入muc,你就无法将消息传入监听器,但你可以在logcat中看到。
我正在使用节监听器并能够接收MUC消息。
final StanzaListener stanzaListener = new StanzaListener() {
@Override
public void processStanza(Stanza packet) throws SmackException.NotConnectedException, InterruptedException { .. }
xmppConnection.addAsyncStanzaListener(stanzaListener, StanzaTypeFilter.MESSAGE);