6
回答
有没有人用过OpenFire发布的Smack库4.0.1版本?监听不到接收到的消息。
科大讯飞通用文字识别100000次/天免费使用。立即申请   
RT,服务器端3.9.3,smack4.0.1,创建的chat无法监听到对方发送过来的消息。有知道的兄弟们告诉下。
举报
共有6个答案 最后回答: 3年前
创建chat后,需要添加监听,创建时传入的那个监听不起作用,不知道为什么 static void addChatListener(XMPPConnection conn) { ChatManager manager = ChatManager.getInstanceFor(conn); manager.addChatListener(new ChatManagerListener() { public void chatCreated(Chat chat, boolean arg1) { chat.addMessageListener(new MessageListener() { public void processMessage(Chat arg0, Message message) { //若是聊天窗口已存在,将消息转往目前窗口 //若是窗口不存在,开新的窗口并注册 System.out.println("收到消息:" + message.getBody()); } }); } }); }

遇到了同样的问题,暂时不知道怎么解决。

processMessage这个函数还不能加@Override注解。

看来4.0和3.X的差别还是很大的呀,不知道楼主这个问题解决没有。

换了一种方法解决了,能够接收到对方返回的消息了。但是不知道之前哪里有问题。

conn.addPacketListener(new PacketListener() {

@Override
public void processPacket(Packet packet) throws NotConnectedException {
Message message = (Message)packet;
System.out.println(message.getFrom() + ":"+ message.getBody());
}
}, new PacketTypeFilter(Message.class));
--- 共有 1 条评论 ---
Jerry_Lux我也是这个问题 我发现chat.sendMessage可以发送Message和String,我怀疑是String要用packetlistener解析,Message要用messagelistener解析 4年前 回复
顶部