5
如何獲得討論MUC房間的歷史從MultiUserChat
?我可以使用aSmack庫創建MultiUserChat實例和房間,現在我想顯示房間中發生的所有以前的對話。如何使用aSmack獲取多用戶聊天室的討論歷史?
任何經驗相同的人請幫助我。我谷歌搜索了很多關於這個,但我仍然沒有得到任何適當的文件/解釋。
如何獲得討論MUC房間的歷史從MultiUserChat
?我可以使用aSmack庫創建MultiUserChat實例和房間,現在我想顯示房間中發生的所有以前的對話。如何使用aSmack獲取多用戶聊天室的討論歷史?
任何經驗相同的人請幫助我。我谷歌搜索了很多關於這個,但我仍然沒有得到任何適當的文件/解釋。
DiscussionHistory history = new DiscussionHistory();
history.setSince(date);
muc.join(nickname, null, history, SmackConfiguration.getReplyTimeout());
// Get historical message;
Message oldMsg = muc.nextMessage(timeout);
您還可以使用
history.setMaxChars()
history.setMaxStanzas()
history.setSeconds()
一些例子是在測試代碼。檢查測試testDiscussionHistory。
這是它需要維持同一個實例爲MUC,或者我們可以製造出任何我們想要的。如果單個實例需要如何在整個應用程序中將該MUC保持爲單個實例。 – 2013-04-10 04:45:59
這裏通過使用你的代碼我從歷史中只收到一條消息(即第一條消息)。即使我設置了'history.setMaxStanzas(20)'。我想從這段歷史中獲得最後20條消息。請幫助我。 – 2013-04-12 05:02:49
您只需多次調用nextMessage。每個呼叫都會檢索下一條消息。最終,您將檢索所有歷史信息並阻止等待下一個實時信息。 – Robin 2013-04-14 19:00:31