XMPP - 使用lib Smack从MUC中的组(会议)中删除用户

时间:2018-01-25 06:17:46

标签: android xmpp smack multiuserchat groupchat

我们正在我们的应用中集成 MUC 进行群聊。我们可以在哪里创建组(会议)和添加成员。问题是 -

  1. 删除的成员仍然收到群组邮件。从组中删除成员的正确方法是什么?
  2. 如何获得小组的总成员数(在线/离线)?
  3. 我们正在使用以下方法删除成员 -

     public void kickOutRoomMember(String groupJid, String memberNickName) {
        MultiUserChat muc;
        try {
            if (manager == null) {
                manager = MultiUserChatManager.getInstanceFor(connection);
            }
            muc = manager.getMultiUserChat(groupJid);
            muc.kickParticipant(memberNickName, "");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public void removeOutRoomMember(String groupJid, String memberNickName) {
        MultiUserChat muc;
        try {
            if (manager == null) {
                manager = MultiUserChatManager.getInstanceFor(connection);
            }
            muc = manager.getMultiUserChat(groupJid);
            muc.banUser(memberNickName, "");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    

2 个答案:

答案 0 :(得分:0)

理论上你是对的。 请检查

  1. 如果调用banUser的用户有资格执行此操作
  2. 通过裸露 jid而不是memberNickName作为方法中的第一个参数。
  3. javadoc

    muc.banUser("Mickey Mouse", ""); //does not works
    muc.banUser("mickeymouse@server","") // will works
    

答案 1 :(得分:0)

安装“ Rest API”插件。

Rest API插件提供了所有与API相关的组。创建或删除组,添加或删除组中的成员,获取组中的所有成员等。