如何在android中创建群聊?

时间:2013-04-12 06:24:22

标签: android xmpp smack asmack multiuserchat

我正在使用aSmack库在android中创建群聊(MultiUserChat)。能够创建MultiUserChat实例,获得该域中的可用房间并能够加入特定的房间。现在我对此有一些疑问,那些是

  1. 是否需要在整个应用程序中为MUC维护相同的实例?
  2. 如何获取特定房间的最后20个讨论历史记录?
  3. 现在我尝试这样来获取讨论历史

    DiscussionHistory history = new DiscussionHistory();
    history.setMaxStanzas(20);               
    muc2.join(acc_id, null, history, JOIN_TIMEOUT); 
    Message oldMsg = muc2.nextMessage(1000);
    

    现在使用上面的代码,我只从服务器获得一条消息,这也是历史记录中可用的第一条消息。但我的要求是我希望在一个房间的讨论历史中获得所有最后20条消息。

    有人在这个问题上帮助我......

1 个答案:

答案 0 :(得分:0)

试试此代码

new Thread(new Runnable() {
  @Override
  public void run() {
    do{
       Message oldMsg = muc.nextMessage();
        if(oldMsg.getBody()!=null){
          //GetMessage(oldMsg); 
        }else{
           break;
        }
   }while(true);
  }
}).start();