XMPP / ejabberd MUC:无法加入超过11间客房

时间:2016-09-12 10:40:47

标签: ios join xmpp ejabberd multiuserchat

我目前正在使用MUC与ejabberd和XMPP开发iOS应用程序。一切似乎都很好,直到我们开始同时将用户加入超过11个聊天室。

使用以下代码连接前11个聊天室时没有任何问题:

self.xmppRoomStorage = XMPPRoomCoreDataStorage(databaseFilename: "\(self.roomID).sqlite", storeOptions: nil)
    let roomJID = XMPPJID.jidWithString(roomJid)

    if roomJID != nil && self.xmppRoomStorage != nil {
        print("Preparing to Activating room -> \(roomJID)")

        self.xmppRoom = XMPPRoom(roomStorage: self.xmppRoomStorage, jid: roomJID, dispatchQueue: dispatch_get_main_queue())
        self.xmppRoom!.addDelegate(delegate, delegateQueue: dispatch_get_main_queue())
        self.xmppRoom!.activate(stream)

        self.xmppRoom!.joinRoomUsingNickname(ChatHelper.getLocalUserJid(), history:nil)
    }

当用户成功加入房间时,随后会调用以下代理:

func xmppRoom(sender, occupantDidJoin, withPresence)

但是,任何超过11个聊天室,并且用户无法连接(他们仍然可以连接到前11个)。 XMPP没有返回错误,只是说它无法加入聊天室。

我尝试在被调用的每个dispatch_after(delayTime, dispatch_get_main_queue())之间添加1秒的延迟,但这并未解决问题(我们认为它可能连接速度太快)。

任何人都可以建议这可能是什么?我们确信Ejabberd配置正确,但很难知道不知道该找什么......

0 个答案:

没有答案