1

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

  1. 是否需要在整个应用程序中为 MUC 维护相同的实例?
  2. 如何获取特定房间的最近 20 次讨论历史?

现在我尝试这样获取讨论历史

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

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

有人帮我解决这个问题...

4

1 回答 1

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();
于 2013-06-17T14:56:25.760 回答