Список доступных комнат чата в XMPP-соединении

#java #xmpp #openfire #smack

#java #xmpp #openfire #удар

Вопрос:

Могу ли я узнать, как составить список всех доступных комнат чата (уже созданных) для конкретного XMPP-соединения и пользователя, используя Smack-Java. То есть я хочу решение, как показано ниже :

room1@conference.localhost.com room2@conference.localhost.com . . . Спасибо.

Ответ №1:

Без плагинов вам в основном нужно повторно просмотреть все службы, доступные на вашем сервере, а затем jid (будьте осторожны: если групповой чат является частным, вы не сможете повторно просмотреть список)

 String groupchatHosted = ""; 

for (String service : MultiUserChatManager.getInstanceFor( connection ).getServiceNames();)
{  
   List<HostedRoom> hosted = MultiUserChatManager.getInstanceFor( connection ).getHostedRooms( service  ));

      for (HostedRoom room : hosted)
     {
       groupchatHosted  = room.getJid()   " ";
     }
   }
  

Вы получите свою строку со всеми сервисами (или просто используйте список строк или другую коллекцию)