webRTC appRTC, соединение автоматически прерывается между вызовами через интервал около 2 минут (демонстрация ISBX)

Я использую библиотеку git от ISBX и встроенную функцию видеовызова в моем приложении swift. Все работает нормально. Это просто главный блокировщик, примерно через 2 минуты соединение автоматически завершается со следующей ошибкой: -

WebSocket закрыт с кодом: 1001 причина: обнаружен конец потока wasClean: 0

Подробная ошибка

2016-07-18 12:44:20.687 testOttaApp-QA[527:74428] WebSocket закрыт с кодом: 1001 причина: обнаружен конец потока wasClean: 0

2016-07-18 12: 44: 20.687 testOttaApp-QA [527: 74428] C-> RS: BYE

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] ИНФОРМАЦИОННАЯ ММИНТЕГРАЦИЯ CMediaPlatformWrapper.cpp: 937

CMediaPlatformWrapper:: DevicePropertyChanged вызывается

2016-07-18 07:14:21.504 testOttaApp-QA[527:16e893000] ИНФОРМАЦИЯ О МИНТЕГРАЦИИ CMediaPlatformWrapper.cpp:969 CMediaCallWrapper::fireMediaPlatformEvent() вызывается с типом 4 Отключено!

2016-07-18 07: 14: 21.514 testOttaApp-QA [527: 1a05f7000] INFO APPLICATION CUcmpConversationsManager.cpp: 2348 CUcmpConversationsManager:: onEvent (). EventType: 4

2016-07-18 12: 44: 22.989 testOttaApp-QA [527: 74428] Незарегистрированный на комнатном сервере.

1 ответ

Наконец один из моих разработчиков решил эту проблему.

В классе ARDWebSocketChannel.m он постоянно выполняет проверку связи с сервером, чтобы избежать разрыва соединения.

#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];

    }
}
Другие вопросы по тегам