Одноранговый Javascript и что-то
Я ищу способ подключения клиента (веб-браузера) к серверу (без внешнего IP) с помощью p2p.
В качестве клиентского языка я хотел бы использовать JavaScript.
Я читал о WebRTC Peer-to-Peer, но я не знаю, работает ли он только с двумя клиентами (javascript) или я могу использовать какой-то другой язык ( PHP, Python, Node.js).
Я знаю о серверах сигнализации, STUN и TURN. У меня есть сервер с внешним IP-адресом, поэтому это не будет проблемой.
У меня вопрос, какой язык программирования я могу использовать на сервере?
3 ответа
На самом деле вы можете избежать других языков, если будете использовать медиасервер Kurento. У этого есть javascript как родной. И он очень хотел использовать его с бэкэндом Node.js.
Также Janus-Gateawey имеет простое API JavaScript и позволяет создавать бэкэнд на любом языке, который вы хотите. Управление всеми вещами webRTC происходит на стороне клиента. Это очень удобно, если вы понимаете WebRTC и JS хотя бы на базовом уровне.
Для управления webRTC с обратной стороны на python вы можете использовать библиотеку aiortc
Если вам нужно отправлять / получать только текстовые данные, то вам нужен https://socket.io/, например, с python-socket.io (на стороне сервера).
Я добавил к ответу Андрея Суглобова: клиент не получает пакеты WebRTC с сервера, потому что у него нет внешнего IP. Чтобы решить эту проблему, вы должны настроить его для связи через сервер TURN в середине.
[Сервер WebRTC] ↔ [ВКЛЮЧЕНО] ↔ [NAT] ↔ [клиент]
Обычно клиент использует JavaScript, потому что это браузер. Но WebRTC - это спецификация, которая поддерживает P2P в сети. Если поддерживается эта спецификация, не имеет значения, какой язык программирования вы используете.
Спасибо.
Наверное, нашел ответ. Я могу использовать серверную часть javascript в node.js