我已經在我的Android應用程序中成功實現了一對一聊天。我已經使用SQLite在應用程序數據庫中保存兩個用戶之間的聊天。但是當用戶卸載應用程序時,這個聊天會被刪除。我需要知道的是,我如何在我的服務器上保存兩個用戶之間的聊天,因此每當用戶重新安裝應用程序或登錄任何其他設備時,他都可以看到他以前的聊天記錄。我在我的ejabberd服務器上啓用了mod_archive和mod_mam,並且能夠在應用程序中檢索離線消息。由於從自定義eJabberd服務器檢索聊天記錄
回答
您需要按照XEP - 0136
http://xmpp.org/extensions/xep-0136.html
對於揍你需要得到它的方式如下:
public void loadArchiveMessages(Jid jid, XMPPTCPConnection xmppTcpConnection){
try {
MamManager mamManager=MamManager.getInstanceFor(xmppTcpConnection);
MamManager.MamQueryResult mamQueryResult = mamManager.queryArchive(jid);
List<Forwarded> forwardedMessages=mamQueryResult.forwardedMessages;
Iterator<Forwarded> forwardedIterator=forwardedMessages.iterator();
while (forwardedIterator.hasNext()){
Forwarded forwarded=forwardedIterator.next();
Stanza stanza=forwarded.getForwardedStanza();
if (stanza instanceof Message) {
String messageId=stanza.getStanzaId();
xmppTcpConnection.processMessage((Message) stanza);
}
}
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (SmackException.NotLoggedInException e) {
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
}
}
嗨Jaspreet !!感謝您的回答。我試圖在我的應用程序中實現此代碼,但我無法解析Android Studio中的MamManager和Jid。我可以知道你在Forwarded類中使用的字符串嗎?請讓我知道我是否缺少任何東西。 –
package org.jivesoftware.smackx.mam; UPVOTE請 –
嗨Jaspreet .. !!再次感謝你的回覆。我在導入的庫中找不到這個軟件包。對不起,如果我在這裏問任何愚蠢的問題,但我是新的這個蹩腳的實施。是否有任何jar文件或更新版本的smack庫。我目前正在使用4.1.9版本。當我搜索更多關於從服務器檢索聊天記錄時,我遇到了一個新的過程,即將自定義IQ發送到服務器。你能否向我解釋一下你的方法與自定義智商部分有何不同。在這個過程中更多的指導是非常值得讚賞的。提前致謝。 –
- 1. XMPPFramework - 無法從Openfire服務器檢索聊天記錄
- 2. ejabberd:從mysql中檢索聊天記錄db
- 3. Ejabberd聊天服務集成
- 4. 存儲聊天記錄兩次Ejabberd [PostgreSQL]
- 5. Smack API - 從Openfire服務器中讀取聊天記錄
- 6. 如何從XMPP獲取聊天記錄供ejabberd使用
- 7. 聊天服務器 - 客戶端/服務器聊天Java作業
- 8. XMPP聊天:Candy不會與Ejabberd服務器一起工作
- 9. 從Java Google Talk中檢索離線消息和聊天記錄
- 10. Node.js http聊天服務器
- 11. autobahn mosquitto服務器聊天
- 12. Android聊天服務器
- 13. Ruby TCP聊天服務器
- 14. 製作服務器聊天
- 15. Java多服務器聊天
- 16. 創建聊天服務器
- 17. TCP聊天服務器
- 18. 安卓聊天服務器
- 19. Java聊天服務器
- 20. 在聊天服務器
- 21. quickblox,如何在聊天中檢索自定義參數?
- 22. 從正常聊天遷移到ejabberd聊天
- 23. ASP.NET的聊天服務/服務器
- 24. 我如何檢索從MySQL數據庫使用smack客戶端聊天記錄ejabberd
- 25. 只從IMAP服務器檢索自定義文件夾
- 26. 使用ejabberd在瀏覽器的聊天
- 27. 刪除聊天室ejabberd
- 28. 客戶端從服務器檢索聊天消息的最佳方式?
- 29. 如何從openfire聊天記錄一對一聊天
- 30. Android聊天服務
甚至我還停留在內部監督辦公室在同一地點:( – Gulshan
@Paritosh我在iOS也有同樣的問題請讓我知道,如果你有它的答案 –
@MaheshNarla我仍然陷在這裏,一旦我有一個完美的解決方案,我一定會讓你知道。 –