Одноранговый Javascript и что-то в этом роде

Я ищу способ подключения клиента (веб-браузера) к серверу (без внешнего IP-адреса) с использованием p2p.

В качестве клиентского языка я хотел бы использовать javascript.

Я читал о одноранговой сети WebRTC, но не знаю, работает ли она только с двумя клиентами (javascript) или я могу использовать какой-то другой язык (PHP, Python, Node.js).

Я знаю про сигнализацию, STUN и TURN серверы. У меня есть сервер с внешним IP-адресом, так что это не проблема.

Мой вопрос: какой язык программирования я могу использовать на сервере?


person HealV    schedule 11.11.2018    source источник
comment
Как насчет использования веб-сокета? в JS есть очень хорошая библиотека socket.io... WebRTC больше используется для видео и аудио p2p. Какова ваша цель с этим? возможно, веб-сокет решит вашу проблему   -  person Milton Filho    schedule 12.11.2018
comment
Моя цель - только отправлять и получать данные в текстовом формате.   -  person HealV    schedule 12.11.2018


Ответы (3)


На самом деле вы можете избежать других языков, если будете использовать медиасервер Kurento. У него есть javascript, как родной. И было дружелюбно использовать его с серверной частью Node.js.

Также Janus-Gateawey имеет удобный JavaScript API и позволяет создавать серверную часть на любом языке, который вы хотите. Управление всеми функциями webRTC происходит на стороне клиента. Это очень удобно, если вы понимаете webRTC и JS хотя бы на базовом уровне.

Для управления webRTC с обратной стороны на python вы можете использовать библиотеку aiortc

Если вам нужно отправлять/получать только текстовые данные, тогда socket.io, например. python-socket.io (на стороне сервера) - это то, что вам нужно

person Andrey Suglobov    schedule 11.11.2018

Я добавил к ответу Андрея Суглобова: клиент не получает пакеты WebRTC с сервера, потому что у него нет внешнего IP. Чтобы решить эту проблему, вы должны настроить его для связи через сервер TURN посередине.

[WebRTC-сервер] ↔ [TURN] ↔ [NAT] ↔ [клиент]

Как правило, клиент использует JavaScript, потому что это браузер. Но WebRTC — это спецификация, которая поддерживает P2P в Интернете. Если вы поддерживаете эту спецификацию, не имеет значения, какой язык программирования вы используете.

Спасибо.

person AirenSoft    schedule 13.11.2018

Наверное нашел ответ. Я могу использовать серверную часть javascript в node.js

person HealV    schedule 12.11.2018