Как получить список всех созданных пользователем комнат чата с сервера 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
}
}
Возможно, вам нужно будет хранить также каждую комнату