Quantcast
Channel: Ignite Realtime: Message List
Viewing all articles
Browse latest Browse all 12000

Re: asmack 4.0 , I can't get offline message

$
0
0

  //Can't get offline messages for asmack4.0.2

//对于asmack4.0.2不能获取离线消息

// The method can get offline messages now,messageCollector must be created before send packet,the problem is wrong code order

//现在下面这个方法可以获取离线消息,messageCollector一定要在发送包之前创建,是代码顺序的问题,修改后如下:

   public List<Message> getMessages() throws NoResponseException, XMPPErrorException, NotConnectedException {

        List<Message> messages = new ArrayList<Message>();

        OfflineMessageRequest request = new OfflineMessageRequest();

        request.setFetch(true);

        PacketCollector messageCollector = connection.createPacketCollector(packetFilter);//before

        connection.createPacketCollectorAndSend(request).nextResultOrThrow();//after

   

        // Collect the received offline messages

        Message message = (Message) messageCollector.nextResult();

        while (message != null) {

            messages.add(message);

            message = (Message) messageCollector.nextResult();

        }

        // Stop queuing offline messages

        messageCollector.cancel();

        return messages;

    }


Viewing all articles
Browse latest Browse all 12000

Trending Articles