Quickblox:只接收正确的消息

时间:2013-11-11 19:53:38

标签: android xmpp chat quickblox

我正在使用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);
        }
    }
};

有人知道我可以通过几个步骤部署聊天吗?

1 个答案:

答案 0 :(得分:1)

这是正常行为。登录后,您将收到来自所有用户的所有消息。如果您现在正在与用户A聊天,则无关紧要。

可能的解决方案 - 将所有新消息存储到ArrayList,HashMap中。 当您打开与用户B的聊天时 - 只需从此ArrayList / HashMap中检索来自用户B的消息,并在屏幕上显示它们。