专业IM即时通讯软件开发,值得信赖!

xmpp openfire+Smack4.3接收离线消息

openfire 云聊IM 41℃

当登陆成功后,如果直接设置了登陆状态为在线的话,是不能获取到离线记录的,离离线消息记录直接就没了!!!没了!!,所以我们要先获取完离线记录再设置为在线,代码如下:

public List<Message> getOfflineMessage() throws Exception{
        OfflineMessageManager offlineManager = new OfflineMessageManager(connection);
        //获取离线消息
        List<Message> messageList = offlineManager.getMessages();
 
        //特别说明,这条代码的意思是获取离线消息的数量,我也不知道为啥只有加了这句才可以真正删除离线记录,
        //否则就一直删不掉,老重复接收重复的离线消息记录
        offlineManager.getMessageCount();
        //获取后删除离线消息记录
        offlineManager.deleteMessages();
 
        //设置在线,只有设置了在线状态,才可以监听在线消息,否则监听都无效
        Presence presence = new Presence(Presence.Type.available);
        connection.sendStanza(presence);
        return messageList;
    }

喜欢 (1)
仿微信聊天软件开发