Я сейчас работаю над проектом, который пытается создать коммуникационный адаптер для старой игры Supreme Commander. Этот адаптер связи использует родной webrtc. Проект Forged Alliance Forever, это репозиторий для коммуникационного адаптера: github.com/FAForever/ice-adapter
Адаптер связи в настоящее время работает с зашифрованной связью, но мы хотели бы отключить шифрование. Пропускная способность загрузки является ограничивающим фактором в играх с большим количеством участников, и DTLS добавляет издержки к каждому сообщению. Эти сообщения имеют небольшой размер около 20-50 байтов. Следовательно, издержки заголовка и заполнения DTLS являются значительными.
Итак, вот вопрос:
Можно ли отключить шифрование для DataChannel PeerConnection, используя собственный выпуск 68 webrtc?
Если так, то как? У вас есть минимальный пример?
Я пробовал следующие вещи (извините за фрагменты кода):
Создать PeerConnectionFactory и отключить шифрование в опциях:
_pcfactory = webrtc::CreateModularPeerConnectionFactory(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
webrtc::PeerConnectionFactoryInterface::Options webRtcOptions;
webRtcOptions.disable_encryption = true;
_pcfactory->SetOptions(webRtcOptions);
Создайте PeerConnection с включенным каналом передачи данных rtp:
webrtc::PeerConnectionInterface::RTCConfiguration configuration;
configuration.servers = _iceServerList;
configuration.enable_rtp_data_channel = true;
_peerConnection = _pcfactory->CreatePeerConnection(configuration,nullptr, nullptr, _peerConnectionObserverObj);
Это то, что я проверял. Проблема сейчас в том, что сторона, отвечающая на запрос, производит прерывание в channel.cc, поэтому, возможно, я неправильно использовал интерфейс. У вас есть предложения?
Привет