1

我正在使用 OpenTok 在 2 个 iOS 设备之间创建视频会议。我想将有关用户的信息(即用户 ID)发送给会议的其他成员,因此一旦我收到用户已连接的回调,我就会向该连接发送该信息:

//Start Call - Session is already created with a valid session ID.
-(void) startCall{
    OTError* error = nil;
    self.session connectWithToken:myToken error:&error];

    if (error){
        NSLog(@"Session signal Error: %@", error);
    }
}

//Session delegate methods
– (void) session:(OTSession*) session connectionCreated:(OTConnection*) connection{
    OTError* error = nil;
    [session signalWithType:@"UserInfo" string:self.user.userID connection:connection error:&error];

    if (error){
        NSLog(@"Session signal Error: %@", error);
    }
}

-(void) session:(OTSession*) session receivedSignalType:(NSString*) type fromConnection:(OTConnection*) connection withString:(NSString*) string{
    if ([type isEqualToString:@"UserInfo"]){
        self.remoteUser.userID = string;
    }
}

问题是,在某些情况下,OTConnection我打赌回来的– session:receivedSignalType:fromConnection:withString:nil. 不仅如此,当我在该回调中放置断点时,我的本地会话的连接也是nil. 我假设这意味着当我收到该信号时我的本地会话尚未连接,但如果我的本地会话未连接,我不会想到有可能接收到信号。此外,在创建连接之前我不会发送信号,那么它nil在其他设备上的情况如何?

有没有其他人看到这个或想出一种方法来防止它?

谢谢你的帮助。

4

0 回答 0