我已經在我的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. 如何從XMPP獲取聊天記錄供ejabberd使用
- 6. 從Java Google Talk中檢索離線消息和聊天記錄
- 7. TCP聊天服務器
- 8. Ruby TCP聊天服務器
- 9. 創建聊天服務器
- 10. Node.js http聊天服務器
- 11. 在聊天服務器
- 12. Java多服務器聊天
- 13. 安卓聊天服務器
- 14. Java聊天服務器
- 15. 只從IMAP服務器檢索自定義文件夾
- 16. 使用ejabberd在瀏覽器的聊天
- 17. ASP.NET的聊天服務/服務器
- 18. 客戶端從服務器檢索聊天消息的最佳方式?
- 19. 如何從openfire聊天記錄一對一聊天
- 20. ejabberd - mnesia表記錄定義:「:: binary()」
- 21. 刪除聊天記錄從數據庫
- 22. 在Symfony2的AuthenticationHandler類中使用自定義記錄器服務
- 23. 從聊天服務器發送到聊天客戶端的數組更新
- 24. 使用Window服務或WCF製作聊天服務器(聊天服務器的.NET服務和聊天客戶端的iOS應用程序)
- 25. 聊天服務器。線程問題
- 26. Java聊天客戶端和服務器
- 27. Asp.Net聊天服務器端輪詢
- 28. 節點聊天服務器問題
- 29. UDP多客戶端聊天服務器
- 30. 移動組語音聊天服務器
甚至我還停留在內部監督辦公室在同一地點:( – Gulshan
@Paritosh我在iOS也有同樣的問題請讓我知道,如果你有它的答案 –
@MaheshNarla我仍然陷在這裏,一旦我有一個完美的解決方案,我一定會讓你知道。 –