我使用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
的呢?
还有其他人看过这个还是想出办法来阻止它?
感谢您的帮助。