QuickBlox:没有快速调用 didReceive 会话方法

Posted

技术标签:

【中文标题】QuickBlox:没有快速调用 didReceive 会话方法【英文标题】:QuickBlox : didReceiveNewSession Method is not gettimg called in swift 【发布时间】:2016-05-04 14:32:28 【问题描述】:

我正在使用 Quickblox sdk 使用 SWIFT 语言进行视频通话项目之一。我正在尝试使用其 quickbloxid 与另一个用户通话。但是当我开始从一个设备呼叫另一台设备时。没有在另一台设备上调用 didReceiveNewSession 委托方法,并且日志显示服务不可用的错误消息。请让我知道我在哪里做错了。提前致谢。

QBRTCClient.instance().addDelegate(self) 

func didReceiveNewSession(session: QBRTCSession!, userInfo: Dictionary<NSObject, AnyObject>!)
    
        print("received call")

    

func session(session: QBRTCSession!, connectedToUser userID: NSNumber!) 
         AppSingletonObj.showAlert("", messsage: "connectedToUser Delegate caled")
    

    func session(session: QBRTCSession!, disconnectedByTimeoutFromUser userID: NSNumber!) 
          AppSingletonObj.showAlert("", messsage: "disconnectedByTimeoutFromUser Delegate caled")
    

    func session(session: QBRTCSession!, hungUpByUser userID: NSNumber!, userInfo: [NSObject : AnyObject]!) 
        AppSingletonObj.showAlert("", messsage: "hungUpByUser Delegate caled")
    


    func session(session: QBRTCSession!, initializedLocalMediaStream mediaStream: QBRTCMediaStream!) 
          mediaStream.videoTrack.videoCapture = self.cameraCapture
        AppSingletonObj.showAlert("", messsage: "initializedLocalMediaStream Delegate caled")
    


    func session(session: QBRTCSession!, rejectedByUser userID: NSNumber!, userInfo: [NSObject : AnyObject]!) 
        AppSingletonObj.showAlert("", messsage: "rejectedByUser Delegate caled")
    

    func session(session: QBRTCSession!, startedConnectingToUser userID: NSNumber!) 
         AppSingletonObj.showAlert("", messsage: "startedConnectingToUser Delegate caled")
    

    func session(session: QBRTCSession!, userDidNotRespond userID: NSNumber!) 
        AppSingletonObj.showAlert("", messsage: "userDidNotRespond Delegate caled")
    

    func session(session: QBRTCSession!, connectionClosedForUser userID: NSNumber!) 
        AppSingletonObj.showAlert("", messsage: "connectionClosedForUser Delegate caled")
    

    func session(session: QBRTCSession!, disconnectedFromUser userID: NSNumber!) 
        AppSingletonObj.showAlert("", messsage: "disconnectedFromUser Delegate caled")
    


    func session(session: QBRTCSession!, updatedStatsReport report: QBRTCStatsReport!, forUserID userID: NSNumber!) 
        AppSingletonObj.showAlert("", messsage: "updatedStatsReport Delegate caled")
    

    func session(session: QBRTCSession!, receivedRemoteVideoTrack videoTrack: QBRTCVideoTrack!, fromUser userID: NSNumber!) 
          AppSingletonObj.showAlert("", messsage: "receivedRemoteVideoTrack Delegate caled")
    

    func session(session: QBRTCSession!, connectionFailedForUser userID: NSNumber!) 
        AppSingletonObj.showAlert("", messsage: "connectionFailedForUser Delegate caled")
    

    func session(session: QBRTCSession!, acceptedByUser userID: NSNumber!, userInfo: [NSObject : AnyObject]!) 
        AppSingletonObj.showAlert("", messsage: "acceptedByUser Delegate caled")
    

【问题讨论】:

【参考方案1】: 您是否已连接到聊天室? 你也打过电话吗 QBRTCClient.initializeRTC()?

【讨论】:

是的,我已经将它连接到 QBChat 以及 initializeRTC.. 经过一些研究后,我发现问题是当我从其他设备开始通话时。 @aman 请在github 上创建问题并附上您的带有可重现错误的示例 嘿,我在我的 Swift 项目中添加了 QBRTCClient.initializeRTC() 但在我的应用程序中仍然没有调用此方法,这可能是问题所在。这会崩溃,原因如下:[__NSCFConstantString count]: unrecognized selector sent to instance ios @PradumnaPatil 是的,即使我也面临同样的问题。你是怎么解决的?【参考方案2】:

请试试这个代码

在需要添加 qbrtcclient 代理后,您还需要先添加聊天代理。我在此步骤后解决了同样的问题。

        QBChat.instance.addDelegate(self)
        QBRTCClient.instance().add(self)

【讨论】:

以上是关于QuickBlox:没有快速调用 didReceive 会话方法的主要内容,如果未能解决你的问题,请参考以下文章

未调用 Quickblox webrtc 视频通话接收方法

QuickBlox - 无法连接聊天

如何在 Swift 中创建 QuickBlox 会话 [关闭]

如何在ios中更新quickblox用户密码

比较 Layer、Applozic、Quickblox 和 SendBird 在 Android 应用程序中的快速 WhatsApp 消息传递

未读消息总数 quickblox