2017-09-19 14 views
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(); 
      } 

答えて

0

私はSmackのMamManagerを使います。例えば、MamManager.queryArchive(Integer)

+0

'mamManager.isSupported()は常にfalseを返します。それを有効にする方法?クライアント側から有効にする必要がありますか?サーバーにグローバル設定がありますか?私はopenfireでSmack 4.2.2を使用しています。 – ADM

関連する問題