【问题标题】:Create MUC group like whatsapp Android创建像whatsapp Android这样的MUC组
【发布时间】:2016-09-22 17:36:22
【问题描述】:

我可以创建和加入 MUC 房间。但是用户从 Openfire 服务器断开连接,他从服务器端的组中删除。我怎么能像 Whatsapp 做的那样,即即使用户离线,他仍然是 MUC 房间的一部分(配置为在服务器端持久化)并且会接收来自其他占用者的消息。

【问题讨论】:

    标签: android chat openfire smack whatsapp


    【解决方案1】:

    邀请用户时,您必须授予他会员资格:

    MultiUserChat muc = multiUserChatManager.getMultiUserChat("foo@conference.myserver");
    
    muc.invite("jhondoe@myserver","Join this groupchat!");
    

    然后您可以授予他发言权,并且您必须授予会员资格(或您喜欢/需要的所有权或审核):

    muc.grantVoice("jhondoe@myserver");
    muc.grantMembership("jhondoe@myserver");
    

    最后,您必须将这样的列表与您的客户集成:

    public List<String> retriveAllAffialiateOfMuc(MultiUserChat muc) throws NoResponseException, XMPPErrorException, NotConnectedException
        {
            List<Affiliate> affiliatesMembers = new ArrayList<Affiliate>();
            if (muc.getAdmins() != null)
            {
                affiliatesMembers.addAll( muc.getAdmins() );
            }
    
            if ( muc.getMembers() != null)
            {
                affiliatesMembers.addAll( muc.getMembers() );
            }
    
            if ( muc.getOwners() != null )
            {
                affiliatesMembers.addAll( muc.getOwners() );
            }
    
            if (affiliatesMembers.size() == 0)
            {
                System.out.println("Error: looking for a non existant room");
                return  new ArrayList<String>(0);
            }
    
            List<String> affiliateMembersNames = new ArrayList<String>(affiliatesMembers.size());
    
            for (Affiliate affiliate : affiliatesMembers)
            {
                affiliateMembersNames.add(affiliate.getJid().toString());
            }
            return affiliateMembersNames;
        }
    

    因此,您将拥有一个隶属于该房间的所有用户的列表。 您可以在某些回调中使用此列表来制作“所有成员”的列表,就像在 WhatsApp 中一样。

    查看本页末尾: https://www.igniterealtime.org/builds/smack/dailybuilds/documentation/extensions/muc.html

    (别忘了投票!)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-21
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多