我正在使用 ISBX 的 git 库和我的 swift 应用程序中的集成视频通话功能,一切正常,它只是一个主要的阻止程序,大约在 2 分钟后,连接会自动终止并显示以下错误:-
WebSocket 关闭,代码:1001 原因:流端遇到是干净的:0
详细错误
2016-07-18 12:44:20.687 testOttaApp-QA[527:74428] WebSocket 关闭,代码:1001 原因:流端遇到是干净的:0
2016-07-18 12:44:20.687 testOttaApp-QA[527:74428] C->RS: 再见
2016-07-18 12:44:20.687 testOttaApp-QA[527:74428] url = https://apprtc.appspot.com/leave/ootaTest82/54508636
2016-07-18 07:14:21.503 testOttaApp-QA[527:16e893000] 信息MMINTEGRATION CMediaPlatformWrapper.cpp:937
CMediaPlatformWrapper::D evicePropertyChanged call
2016-07-18 07:14:21.504 testOttaApp-QA[527:16e893000] 信息MMINTEGRATION CMediaPlatformWrapper.cpp:969 CMediaCallWrapper::fireMediaPlatformEvent() 用类型 4 调用断开!
2016-07-18 07:14:21.514 testOttaApp-QA[527:1a05f7000] INFO APPLICATION CUcmpConversationsManager.cpp:2348 CUcmpConversationsManager::onEvent().事件类型:4
2016-07-18 12:44:22.989 testOttaApp-QA[527:74428] 从房间服务器未注册。
我的一位开发人员解决了这个问题。
在ARDWebSocketChannel.m类中,他不断对服务器进行ping操作,以避免任何连接中断。
#pragma mark - SRWebSocketDelegate
- (void)webSocketDidOpen:(SRWebSocket *)webSocket {
NSLog(@"WebSocket connection opened.");
self.state = kARDWebSocketChannelStateOpen;
if (_roomId.length && _clientId.length) {
[self registerWithCollider];
// Sending autoping to server
[self startConnectionCheckTimer];
}
}
// Checking for WSconnection by Sending Scheduled Ping
- (void)startConnectionCheckTimer {
if (!_timer) {
_timer = [NSTimer scheduledTimerWithTimeInterval:30.0f
target:self
selector:@selector(sendPing:)
userInfo:nil
repeats:YES];
}
}
- (void)stopConnectionCheckTimer {
if ([_timer isValid]) {
[_timer invalidate];
}
_timer = nil;
}
- (void)sendPing:(id)sender
{
if(_socket != nil)
{
[_socket sendPing:nil];
}
}