1
1対1のチャットとグループチャットのチャット履歴を取得したいと考えています。いくつかの研究の後、私はMessage Archive Managementでそれを行うことができることを知りに来た。それはアンドロイドクライアントに古いメッセージを取得するための例を提供していません。私はサーバーから古いメッセージのチャット履歴を取得したいが、私はxmppサーバーから古いメッセージを引き出す方法を知らない。ここではこれについて多くの質問がありましたが、適切な解決策はありませんでした。今まで私がやったことは、接続と他のユーザーへのメッセージの送信です。誰もxmppサーバからチャットの履歴を取得するのを助けることができますか?xmppサーバーからチャット履歴を取得する方法smackライブラリ
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setUsernameAndPassword("user1", "password")
.setHost(getString(R.string.domain))
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setServiceName(getString(R.string.domain))
.setPort(5222)
.setDebuggerEnabled(true) // to view what's happening in detail
.build();
XMPPTCPConnection conn1 = new XMPPTCPConnection(config);
conn1.setUseStreamManagement(true);
XMPPTCPConnection.setUseStreamManagementDefault(true);
conn1.setUseStreamManagementResumption(true);
// ReconnectionManager.getInstanceFor(this.conn1).enableAutomaticReconnection();
conn1.setPacketReplyTimeout(10000);
try {
conn1.connect();
if(conn1.isConnected()) {
Log.w("app", "conn done");
}
conn1.login();
if(conn1.isAuthenticated()) {
Log.w("app", "Auth done");
}
}
catch (Exception e) {
Log.w("app", e.toString());
}
ChatManager chatmanager = ChatManager.getInstanceFor(conn1);
Chat newChat = chatmanager.createChat("[email protected]"+getString(R.string.domain));
try {
newChat.sendMessage("Test Msg from user1!!!");
}
catch (SmackException.NotConnectedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
'mamManager.isSupported()は常にfalseを返します。それを有効にする方法?クライアント側から有効にする必要がありますか?サーバーにグローバル設定がありますか?私はopenfireでSmack 4.2.2を使用しています。 – ADM