WebRTC в iOS: не удалось создать объект PeerConnection с собственным сервером STUN / TURN - PullRequest
0 голосов
/ 09 января 2019

Я реализовал WebRTC в своем приложении для iOS, используя следующую ссылку: Код ссылки AppRTC от Google для iOS

Я успешно реализовал свой голосовой / видеочат и проверил этот URL: 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), я мог бы успешно подключиться к другим одноранговым узлам и сделать голосовой / видео чат.

Примечание:

...