Сервер канала данных Webrtc для клиента

Я пытаюсь создать webrtc канал данных между клиентом и сервером. (данные различаются между каждым клиентом, поэтому мне нужно уникальное соединение между каждым клиентом и моим сервером)

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

Мне не нужна никакая сигнализация, только чистое webrtc соединение. я пытался использовать этот сервер поворота https://github.com/coturn/coturn, но я глубоко оцените любой рабочий пример для канала передачи данных от сервера к клиенту без какой-либо сигнализации, просто чистый webrtc. Большое спасибо!:)


person avi dahan    schedule 21.01.2018    source источник


Ответы (3)


Вы все неправильно поняли...

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

Как только вы получите эти сообщения через сигнальный сервер, вам может понадобиться сервер TURN (и, скорее всего, вам понадобится сервер STUN, который вы получаете бесплатно в большинстве реализаций сервера TURN). Сервер TURN будет ретранслировать трафик вашего канала данных, если браузеры не смогут взаимодействовать напрямую в одноранговой сети.

Существует довольно много сигнальных серверов, которые вы можете использовать. Вот один из вариантов: https://github.com/feross/simple-peer.

person Tsahi Levent-Levi    schedule 21.01.2018
comment
Во-первых, я очень ценю ваш ответ, но я думаю, что вы все поняли неправильно, потому что я не хотел, чтобы браузер был браузером WebRTC, а был каналом данных между сервером и браузером, и для этого типа связи вам не нужна сигнализация. - person avi dahan; 21.01.2018
comment
Для браузера в браузере вам нужен SDP, но если я буду использовать сервер поворота и вместо другого узла сервер захватит соединение, существует несколько реализаций такого типа соединений, но, к сожалению, не с открытым исходным кодом. - person avi dahan; 21.01.2018
comment
Как объяснил Цахи, вам понадобится сигнализация, даже если вы используете WebRTC для подключения браузера к серверу. - person jamix; 22.01.2018

Вам нужен сигнальный сервер для обмена SDP между браузером и тем, с чем браузер разговаривает, чтобы установить вызов. Этот сигнальный сервер может быть таким же, как ваш медиа-сервер, но это не обязательно. Если ваш медиа-сервер находится в открытом Интернете, вам не нужен сервер TURN. Если он находится за другим NAT, он вам понадобится.

person Harald Tveit Alvestrand    schedule 22.01.2018
comment
comment
Как вы можете видеть в приведенной выше ссылке, сигнализация также может осуществляться через канал данных, что означает, что все соединение осуществляется через WebRTC, а сервер также действует как одноранговый узел, это пример, который я хотел бы получить. - person avi dahan; 22.01.2018
comment
Вы понимаете, что это мой веб-сайт и сообщение, на которое вы указываете здесь :-) Вы можете использовать канал данных для сигнализации, но для того, чтобы открыть его, вам нужно сначала установить начальное соединение, используя внешнее сигнальное соединение - возможно через веб-сокет или через HTTPS - person Tsahi Levent-Levi; 22.01.2018
comment
прикольно, не заметил :) но я уверен, что есть способ использовать только webrtc для установления соединения между сервером и клиентом, потому что некоторые компании используют его для обхода блокировки рекламы и тому подобного. - person avi dahan; 23.01.2018
comment
если я использую сервер поворота в качестве серверной части, а затем, когда клиенты подключаются к моему серверу поворота, я просто перехватываю соединение между клиентом и моим сервером. - person avi dahan; 25.01.2018

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

Пожалуйста, взгляните на ответ, который у меня есть: possibl">сервер канала передачи данных WebRTC для связи UDP клиентов. Возможно ли это в настоящее время?

person Miao ZhiCheng    schedule 27.06.2018