我已经在我的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我仍然陷在这里,一旦我有一个完美的解决方案,我一定会让你知道。 –