how to get chat history from xmpp server smack library

I want to get chat history for one to one chat and group chat. after some research i came to know that i can do it by Message Archive Management . but it does not provide any example to get older message in to android client. i want to get older message chat history from server, but i dont know how to pull older messages from xmpp server. there are so many questions asked about this over here but didn't get any proper solution. what i have done till now is connection and sending message to other user. can anyone help me to get history of chat from xmpp server?

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("user2@"+getString(R.string.domain));

            try {
                newChat.sendMessage("Test Msg from user1!!!");
            }
            catch (SmackException.NotConnectedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

I'd use Smack's MamManager . For example MamManager.queryArchive(Integer) .

链接地址: http://www.djcxy.com/p/64996.html

上一篇: 嵌入式NSArray中第一个元素的关键路径

下一篇: 如何从xmpp服务器smack库中获取聊天记录