簡體   English   中英

smack API在openfire服務器上獲取所有公共房間

[英]smack api get all public rooms on openfire server

我正在使用XMPP smack api連接到Openfire服務器。 我試圖查詢服務器以返回所有可用的公共房間,而無需事先知道這些房間的名稱。 這樣做的目的是使我的客戶可以顯示所有可用公共房間的列表,並相應地加入它們。 Smack擴展文檔提供了幾個從服務器返回房間信息的示例,但是這些示例似乎都不符合我的需求。

一個示例要求您事先知道房間的名稱,如果您想顯示客戶否則不知道的可用房間,這是不好的。 此示例的代碼如下。

 // Discover information about the room roomName@conference.myserver
  RoomInfo info = MultiUserChat.getRoomInfo(conn, "roomName@conference.myserver");
  System.out.println("Number of occupants:" + info.getOccupantsCount());
  System.out.println("Room Subject:" + info.getSubject());

另一個示例使您可以查詢所有聯系人當前所在的房間。這似乎是獲取房間名稱的非常​​間接的方式,並且有可能將某些房間留在外面。 由於XMPP是基於服務器的協議,而不是基於p2p的協議,因此這似乎不是實現此目的的最合乎邏輯的方式(盡管如果我做錯了,請更正我)。 此代碼示例如下

 Iterator joinedRooms = MultiUserChat.getJoinedRooms(conn, "user3@host.org/Smack");

如果有人可以給我發送鏈接或提供有關如何完成此操作的示例,將不勝感激。

看起來MultiUserChat.getHostedRooms()是您要尋找的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM