我正在使用quickblox开发聊天,但是当我打开新聊天时遇到了一些问题。突然,当我断开连接时,我收到了其他用户发送给我的所有消息。问题是,当我开始与用户A聊天时,我收到用户A聊天室中用户B,C,D ..的聊天。
我找到了只显示A用户的方法。但问题是服务器已经向我发送了“断开连接”的消息,所以当我开始与BI聊天时没有收到任何文本,因为用户B发送给我的消息已经发送(并省略),而我正在和用户A聊天。
如何接收待处理的消息(某种历史记录)或只是检索我登录的聊天消息?
我的一段代码:
private MessageListener messageListener = new MessageListener() {
@Override
public void processMessage(Chat chat, Message message) {
System.out.println("CridaC");
String from = message.getFrom().split("@")[0];
String to = message.getTo().split("@")[0];
System.out.println(String.format(">>> Message received (from=%s, to=%s): %s",from, to, message.getBody()));
// return;
if (onMessageReceivedListener != null && message.getBody() != null) {
System.out.println("CridaD");
onMessageReceivedListener.onMessageReceived(message);
}
}
};
有人知道我可以通过几个步骤部署聊天吗?
答案 0 :(得分:1)
这是正常行为。登录后,您将收到来自所有用户的所有消息。如果您现在正在与用户A聊天,则无关紧要。
可能的解决方案 - 将所有新消息存储到ArrayList,HashMap中。 当您打开与用户B的聊天时 - 只需从此ArrayList / HashMap中检索来自用户B的消息,并在屏幕上显示它们。