🖼️ Мои проблемы с WebRTC
WebRTC - это технология, которая позволяет устанавливать прямое соединение между браузерами для передачи аудио, видео и данных.
Но я обнаружил, что она не всегда работает корректно, если использовать VPN.
В чем проблема?
Соединение без особых признаков сбрасывается, что приводит к не работоспособности приложения.
При подключении к VPN, WebRTC не может открыть нужный порт для прямого соединения (p2p) между браузерами.
Это означает, что он не может установить прямой обмен данными между браузерами, и в этом случае, WebRTC переключается на режим работы через TURN сервер, который является посредником между браузерами и пропускает через себя весь трафик.
Я подозреваю, что мой VPN сервис не пропускает некоторые входящие UDP пакеты по каналу ко мне, из-за чего и происходит сброс соединения.
Как это выглядит в разных браузерах?
Кроме того, я заметил, что в разных браузерах WebRTC по-разному реагирует на отсутствие TURN сервера. В Firefox он выдает ошибку через 15 секунд, в которой указывает, что TURN сервер недоступен. А по консоли Chrome - такую роскошь не показывают.
Поэтому - когда я разрабатывал конференции на проекте, у меня было много проблем с WebRTC. Он то работал, то нет.
Я всегда сидел с включенным VPN, т.к. в текущих реалиях - это главное условие работы многих зарубежных сервисов, в том числе и Github Copilot. И соотвественно не мог понять, в чем дело.
Я пробовал выключать и включать VPN, но это не давало ярко выраженного результата, учитывая что в Chrome я не видел ошибок, а в Firefox видел, что еще сильнее сбивало с толку.
Мой совет
Если вы работаете с WebRTC, лучше отключите VPN.
А еще лучше - изучите технологию, с которой работаете)
Что дальше?
Сейчас готовлю информацию о том, как по WebRTC принимать поток записи экрана браузера прямо на сервер. До сегодняшнего дня - в моем понимании это было довольно сложно реализуемо, из-за убеждения в том, что нельзя открыть соединения без взаимного обмена одним и тем же набором потоков (Audio + Video)
Post #110
149