5

我正在尝试根据 room 从特定组中获取加入的成员列表JID,存在几种方法,如下所述:

  • MultiUserChat.getMembers(); 它返回XMPPError: forbidden - auth
  • MultiUserChat.getOc​​cupants(); 它只返回自我信息
  • MultiUserChat.getParticipants(); 它返回XMPPError: forbidden - auth

但是没有工作异常XMPPError: forbidden - auth,似乎隐私有问题,我无法弄清楚。

注意:JID 房间名称,格式为“roomName@service”

4

2 回答 2

0

根据 xmpp 文件,房间/组应该是非匿名的以检索所有成员列表。因此,请尝试在 .yml 或服务器端的配置文件中设置 anonymous = false ,或者您也可以在创建房间时在配置中进行设置。

请注意,从属关系至少应为会员才能检索会员列表

于 2020-07-22T06:26:59.013 回答
-1
Use this :

multiUserChatManager = MultiUserChatManager.getInstanceFor(XMPPConnection);
MultiUserChat muc =multiUserChatManager.getMultiUserChat("dopee@conference.104.155.155.5");
        try {
            List<Affiliate> admin=muc.getAdmins();
            System.out.println("Admin=====>>>"+admin);
            List<String> userlist=muc.getOccupants();
            List<Affiliate> member=muc.getMembers();
            List<Occupant> memBer=muc.getParticipants();
            List<Affiliate> owner=muc.getOwners();

            System.out.println("userlist=====>>>"+ userlist.toString());
            System.out.println("usercount=====>>>"+   muc.getOccupantsCount());
        } catch (SmackException.NoResponseException e) {
            e.printStackTrace();
        } catch (XMPPException.XMPPErrorException e) {
            e.printStackTrace();
        } catch (SmackException.NotConnectedException e) {
            e.printStackTrace();
        }
于 2017-09-13T11:38:07.187 回答