WebRTC в локальной сети?

Я читал о WebRTC, и он выглядит очень многообещающим. Я хотел сделать простую игру, которая автоматически соединяет людей в одной сети. Хотя я мог найти людей, спрашивающих о чем-то подобном, и ответы, рассказывающие им, что это возможно, я не мог найти никаких ясных руководств о том, как это можно сделать.

Однако я очень новичок в WebRTC и веб-программировании в целом. Так что, может быть, я просто не знаю, что искать.

Итак, как я могу автоматически подключать людей, использующих WebRTC в локальной сети, без необходимости запуска отдельного сервера или подключения к Интернету? Они должны иметь возможность открывать html файл на своем компьютере и подключаться ко всем, кто делает это в той же сети, даже если нет Интернета.

Спасибо!

Ответ 1

По крайней мере, одна машина должна быть сервером, в том смысле, что ей нужно открыть порт, который она прослушивает. Это факт жизни со всеми связями; когда одна машина открывает соединение, на другом конце должна быть другая машина, которая отвечает. Без этого невозможно установить связь.

Если вы хотите, чтобы один или все компьютеры прослушивали порт, вы можете настроить WebRTC в локальной сети. В этом случае вам не понадобится STUN или TURN, потому что нет обхода NAT.

WebRTC не требует STUN или TURN в локальной сети. Конечные точки WebRTC могут генерировать локальные кандидаты ICE, используя их известные адреса в локальной сети. Они обмениваются через сигнализацию, либо непосредственно в SDP, либо как кандидаты ICE в ручеек ICE. Одноранговое соединение может быть установлено без необходимости подключения к серверу STUN, внешнему по отношению к локальной сети.

Ответ 2

Прежде чем два партнера смогут установить прямое соединение, они оба должны обмениваться данными с набором данных (параметры сети, конфигурация мультимедиа, используемые протоколы и т.д.), чтобы они могли понять, как подключиться друг к другу. Они могут выполнять этот процесс с использованием SDP (протокол описания сеанса).

Следовательно, вам нужен сервер сигнализации в сети, доступный каждому потенциальному партнеру. Когда клиент хочет подключиться к сети "WebRTC", он должен сначала подключиться к серверу сигнализации. Затем сервер сигнализации будет уведомлять других одноранговых узлов о том, что у нас есть новый, и все одноранговые узлы будут обмениваться данными с SDP через сервер сигнализации. После этого сверстники смогут установить прямую связь с новым партнером. Когда установлено прямое соединение, все данные поступают между одноранговыми узлами напрямую.

Ответ 3

WebRTC не может работать без какого-либо механизма сигнализации. В основном, ваши клиенты должны знать, по крайней мере, что-то о друг другом, и это "что-то" в терминах WebRTC представляет собой пакет SDP (протокол описания сеанса). После обмена пакетами SDP механизм WebRTC попытается подключить клиентов самым прямым образом.

Попробуйте эту статью: http://www.html5rocks.com/en/tutorials/webrtc/basics/

Это даст вам общее представление о том, как работает WebRTC, и вы сами ответите на свой вопрос. Ключевые слова: сигнализация, STUN и TURN.

Удачи!