【问题标题】:XMPP - Using lib Smack remove user from group(conference) in MUCXMPP - 在 MUC 中使用 lib Smack 从组(会议)中删除用户
【发布时间】:2018-07-04 08:10:28
【问题描述】:

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

  1. 已删除的成员仍收到群组消息。从组中删除成员的正确方法是什么?
  2. 如何获取群组的总成员(在线/离线)?

我们正在使用以下方法来删除成员-

 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();
    }
}

【问题讨论】:

    标签: android xmpp smack multiuserchat groupchat


    【解决方案1】:

    理论上你是对的。 检查一下

    1. 如果调用 banUser 的用户有授权
    2. 通过裸 jid 而不是 memberNickName 作为方法中的第一个参数。

    javadoc

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

    【讨论】:

      【解决方案2】:

      安装“Rest API”插件。

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

      【讨论】:

        猜你喜欢
        • 2016-10-25
        • 2017-07-14
        • 2016-10-25
        • 2014-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多