Как получить список всех созданных пользователем чатов из сервера Openfire С ПОМОЩЬЮ Asmack

#android #xmpp #openfire #asmack #groupchat

#Android #xmpp #openfire #asmack #групповой чат

Вопрос:

Я создаю приложение для группового чата, в котором несколько пользователей могут общаться друг с другом. Я не могу понять, как я могу получить все созданные пользователем чаты с сервера openfire, используя smack api.

Ответ №1:

Первый шаг:

проверьте, доступны ли службы на сервере.

Каждая служба может содержать 0 или более групповых чатов. По умолчанию Openfire просто регистрирует одну службу, имя по умолчанию — конференция.

 List<String> services = MultiUserChatManager.getInstanceFor( connection ).getServiceNames();
  

Второй шаг:

проверьте все размещенные групповые чаты и сохраните результат по мере необходимости. Например:

 Map<String, List<HostedRoom>> chatroomInServices = new HashMap<String,List<HostedRoom>)(services.size());

for (String service : services)
{
 chatroomInServices.put(service, MultiUserChatManager.getInstanceFor( connection ).getHostedRooms( service  ) );
}

    for (List<HostedRoom> hosted: chatroomInServices.values())
   {
      for (HostedRoom room : hosted)
     {
       room.getJid();  // user@conference.server
     }
   }
  

Вероятно, вам нужно будет сохранить также каждый roomJid