我正在使用 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
在其他设备上的情况如何?
有没有其他人看到这个或想出一种方法来防止它?
谢谢你的帮助。