【问题标题】:XMPPFramework IOS - Implementing MUCXMPPFramework IOS - 实现 MUC
【发布时间】:2016-02-06 08:23:49
【问题描述】:

参考这个我正在实现一个群聊配置。

XMPPFramework - Implement Group Chat (MUC)

但是,作为参与者而非主持人,我无法获取成员列表。我已尝试阅读多个堆栈答案,要求实现“muc#roomconfig_getmemberlist”,但是 XMPPRoom 的 fetchconfiguration 委托未在回调中提供此字段值。

任何人都可以建议执行此操作的确切方法以及如何获取成员列表。

【问题讨论】:

    标签: ios xmppframework muc


    【解决方案1】:

    使用

    创建 xmpp 房间
    /**
     This fuction is used to setup room with roomId
     */
    -(void)setUpRoom:(NSString *)ChatRoomJID
    {
        if (!ChatRoomJID)
        {
            return;
        }
        // Configure xmppRoom
        XMPPRoomMemoryStorage *roomMemoryStorage = [[XMPPRoomMemoryStorage alloc] init];
    
        XMPPJID *roomJID = [XMPPJID jidWithString:ChatRoomJID];
    
        xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:roomMemoryStorage jid:roomJID dispatchQueue:dispatch_get_main_queue()];
    
        [xmppRoom activate:xmppStream];
        [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];
    
        NSXMLElement *history = [NSXMLElement elementWithName:@"history"];
        [history addAttributeWithName:@" maxchars" stringValue:@"0"];
        [xmppRoom joinRoomUsingNickname:xmppStream.myJID.user
                                history:history
                               password:nil];
    
    
        [self performSelector:@selector(ConfigureNewRoom:) withObject:nil afterDelay:4];
    
    }
    
    /**
     This fuction is used configure new
     */
    - (void)ConfigureNewRoom:(id)sender
    {
        [xmppRoom configureRoomUsingOptions:nil];
        [xmppRoom fetchConfigurationForm];
        [xmppRoom fetchBanList];
        [xmppRoom fetchMembersList];
        [xmppRoom fetchModeratorsList];
    
    }
    

    房间创建后使用Xmpp房间的Delegate方法

    - (void)xmppRoom:(XMPPRoom *)sender occupantDidJoin:(XMPPJID *)occupantJID withPresence:(XMPPPresence *)presence
    
    
    - (void)xmppRoom:(XMPPRoom *)sender occupantDidLeave:(XMPPJID *)occupantJID withPresence:(XMPPPresence *)presence
    

    使用这两种委托方法,您可以轻松维护加入 MUC Room 的用户列表

    【讨论】:

    • 感谢Samanvith,我可以获得这些代表,因此不需要在服务器的设置配置中将其设置为“muc#roomconfig_getmemberlist”,因为它在服务器中默认为ON。谢谢你的信息。
    【解决方案2】:

    这是服务器中默认启用的配置,因此无需设置,我们必须自定义服务器以使成员甚至离线并留出空间。从而达到显示其他聊天应用程序成员的要求。

    【讨论】:

      猜你喜欢
      • 2013-10-16
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 2012-05-09
      • 2016-05-23
      • 2017-06-29
      • 2013-09-04
      相关资源
      最近更新 更多