WebRTC в iOS: не удалось создать объект PeerConnection с собственным сервером STUN/TURN
Я реализовал WebRTC в своем приложении для iOS, используя следующую ссылку: Ссылочный код AppRTC от Google для iOS
Я успешно реализовал свой голосовой / видеочат и проверил по этому адресу: https://appr.tc/
Указанный выше URL предназначен только для демонстрации, так как соединение будет длиться дольше, чем до одной минуты.
Итак, моя команда разработчиков решает создать наши собственные серверы STUN и TURN.
Мы создали собственный сервер STUN & TURN на основе следующей ссылки и установили его на нашем сервере: ссылка на сервер STUN & TURN
Здесь мы обнаружили одну новую проблему при создании объекта однорангового соединения: он генерирует нулевой объект при добавлении к нашим серверам STUN и TURN в конфигурациях.
Пожалуйста, найдите мой фрагмент кода из следующего:
// Create peer connection.
NSString *value = _isLoopback ? @"false" : @"true";
NSDictionary *optionalConstraints = @{ @"DtlsSrtpKeyAgreement" : value };
RTCMediaConstraints *constraints =
[[RTCMediaConstraints alloc]
initWithMandatoryConstraints:nil
optionalConstraints:optionalConstraints];
RTCConfiguration *config = [[RTCConfiguration alloc] init];
RTCCertificate *pcert = [RTCCertificate generateCertificateWithParams:@{
@"expires" : @100000,
@"name" : @"RSASSA-PKCS1-v1_5"
}];
config.iceServers = _iceServers; // OWN STUN & STUN servers
config.sdpSemantics = RTCSdpSemanticsUnifiedPlan;
config.certificate = pcert;
config.bundlePolicy = RTCBundlePolicyMaxBundle; // For checking purpose
config.iceTransportPolicy = RTCIceTransportPolicyAll; // Default value
_peerConnection = [_factory peerConnectionWithConfiguration:config
constraints:constraints
delegate:self];
Наблюдение:
- Здесь объект "_peerConnection" генерирует ноль для моих IceServers, поэтому дальнейший код не выполняется.
- Если я удалил iceServers во время настройки (то есть не использовал iceServers), я мог бы успешно подключиться к другим партнерам и сделать голосовой / видео чат.
Замечания:
- Мы уже проверили наши конфигурации серверов STUN & TURN на следующем веб-сайте: Справочник по тестированию конфигурации серверов STUN & TURN