Могу ли я использовать WebRTC, чтобы открыть соединение UDP?

Нам нужно отправлять данные на устройства наших пользователей с использованием протокола TFTP, который представляет собой простой FTP-подобный протокол, работающий по протоколу UDP.

Поскольку мы не можем открыть сокет UDP с помощью javascript, мы используем наш сервер в качестве прокси-сервера, отправляя данные на наш сервер и открывая соединение UDP от сервера к устройству. Это имеет тот недостаток, что наши пользователи должны изучать NAT и настраивать переадресацию портов.

Итак, вопрос в том, можем ли мы использовать WebRTC, чтобы открыть прямой сокет UDP для отправки и получения между браузером и устройствами?

http://www.webrtc.org/reference/webrtc-internals/vienetwork предполагает, что мы могли бы отправлять некоторые необработанные данные UDP через сокет (то есть, если возможно получить доступ к этому слою через javascript. не уверен насчет этого), но я не вижу способа получить необработанный ответ UDP.

Любая помощь высоко ценится

2 ответа

Решение

Нет. Существует слишком много проблем безопасности, позволяющих отправлять WebRTC на произвольный адрес / порт - мы должны убедиться, что он не работает как платформа DDOS, поэтому мы требуем, чтобы цель внедрила ICE как неявное разрешение на отправку данных, и мы также не разрешаем отправлять произвольные данные, только средние потоки SRTP и данные в каналах данных (через SCTP через DTLS через UDP+ICE).

Нет, вы не можете отправлять необработанные данные UDP, используя WebRTC.

Библиотека ViENetwork, в которой вы можете найти метод SendUDPPacket, используется внутри Chrome для обработки передачи пакетов, поддержки Windows QoS и других сетевых настроек, но у вас нет прямого доступа к нему.

Одной из основных функций WebRTC является канал данных, который предоставит возможность установить одноранговое соединение между двумя браузерами, чтобы обеспечить обмен необработанными данными. Это все еще находится в стадии разработки в Chrome и Firefox, как вы можете видеть здесь.

Это может быть то, что вы ищете, так как вы можете установить соединение для отправки необработанных данных, и вам нужно будет только найти способ установить это соединение с другой конечной точкой, если вы этого хотите.

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