When i enable setUseStreamManagementDefault or setUseStreamManagementResumptiodDefault then i am not able to receive offline messages in ChatManagerListener interface. if setUseStreamManagementDefault and setUseStreamManagementResumptiodDefault both are disabled then i am able to receive the offline messages but i cannot receive stanza acknowledgement in addStanzaAcknowledgedListener. I want to receive offline messages as well as stanza acknowledgement what should i do ?
I tried to use OfflineMessageManager but i cannot receive offline messages. I don't want to use OfflineMessageManager , is it possible without using OfflineMessageManager i can receive offline messages ?
AFAIK you have to use OfflineMessageManager. I did not find any other way.
OfflinemessageManager offlineMessageManager = new OfflineMessageManager(connection);
if (offlineMessageManager.supportsFlexibleRetrieval() && offlineMessageManager.getMessageCount() > 0) {
List<String> messagesNodes = offlineMessageManager.getHeaders().stream()
.map(OfflineMessageHeader::getStamp)
.collect(Collectors.toList());
offlineMessageManager.getMessages(messagesNodes)
.forEach(message -> {
System.out.println(String.format(offlineMessageOffline, message.getBody(), message.getFrom()));
});
offlineMessageManager.deleteMessages();
}
Also no need to do anything inside this code. Offline messages will automatically be listened in IncomingChatMessageListener
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.