java - processMessage 运行两次

标签 java openfire smack

有一个 MessageListener 监听来自用户 A 的 processMessage,当 sendMsg 从另一个用户发送到用户 A 时,我看到 processMessage 被调用两次:

public void sendMsg(message){
 Message msg = new Message();
 mess.setBody(message);
 // userid is the userid to whom the message will be sent to and chmanage is an instance of Chat Manager
 Chat chat = chmanage.createChat(<userid>, new CListener());
 chat.sendMessage(msg);
}

class CListener implements MessageListener{

 @Override
 public void processMessage(Chat chat, Message message) {
  ...
  //this gets called twice
 }
}

这有什么原因吗?我应该使用其他东西,例如创建 PacketCollector 或 PacketListener 吗?

最佳答案

监听器被使用了两次来监听消息并将其注册到另一个用户。在为此创建一个单独的监听器类后它就起作用了

关于java - processMessage 运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22680993/

相关文章:

Android 文件传输无法通过 XMPP 和 OpenFire 工作

android - openfire用户和roster用户的区别

java - 使用 Smack API 自动将用户添加到名册中

android - smack 4.2.0 错误 : IN AAAA yielded an error response NX_DOMAIN

Java 反射从同一上下文调用方法

java - sql where 子句等于 true

java - 在 Spring 规范中渴望获取

java - 下载jdk1.5.0_18源码

android - 如何从Openfire获取群聊的离线消息

java - asmack - 无法读取 VCard