【问题标题】:Multi User Chat room join with owner privilege android + asmack具有所有者权限的多用户聊天室加入 android + asmack
【发布时间】:2023-03-10 17:35:01
【问题描述】:

多用户聊天室加入

如何在 android 中以“所有者”身份加入多用户聊天室?目前我正在使用以下代码加入多用户聊天室。但是我只是作为参与者加入。

MultiUserChat muc = new MultiUserChat(connection, group);
muc.join(nickNameOfUser, password);

【问题讨论】:

    标签: android xmpp openfire asmack


    【解决方案1】:

    MUC 成员/所有者列表维护在 MUC 服务器端,并自动授予您创建/加入房间的所有者权限。如果您没有获得所有者权限,则房间是由其他人创建的。

    【讨论】:

    • @vitalyster..即使我加入了我创建的房间,我仍然以参与者的身份加入。我正在使用以下代码创建房间。名册名册 = getRoster(account); roster.createGroup(nick);
    • 不是房间创建代码,使用:MultiUserChat muc = new MultiUserChat(connection, group); muc.create(nickNameOfUser);
    • @vitalyster...我尝试使用您提出的 MultiUserChat 对象创建房间。但它给了我一个 ClassCastException。
    • ClassCastException 在您尝试转换不兼容的对象时抛出,与 MUC 所有权无关。显示您的完整代码和完整错误。
    【解决方案2】:
    // In Smack version 4.1.4 i am able to join Room by following way.
    
    MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(connection);
    manager.addInvitationListener(new InvitationListener() {
                        @Override
                        public void invitationReceived(XMPPConnection conn, MultiUserChat room, String inviter, String reason, String password, Message message) {
                            try {
                                room.join(userName);
                            } catch (SmackException.NoResponseException e) {
                                e.printStackTrace();
                            } catch (XMPPException.XMPPErrorException e) {
                                e.printStackTrace();
                            } catch (SmackException.NotConnectedException e) {
                                e.printStackTrace();
                            }
                        }
                    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      相关资源
      最近更新 更多