Сколько подключений WebRTC существует на сервере TURN?
Я пробую WebRTC и хотел бы узнать больше о том, как работает сервер TURN, с точки зрения соединений.
Потому что я пробовал, что даже мобильные устройства с одинаковой телефонной связью, они не могут подключаться друг к другу напрямую. Сервер TURN требуется для ретрансляции сообщений.
Предполагая, что в комнате есть 4 игрока A,B,C,D и все они НЕ могут напрямую соединяться друг с другом. Итак, для сервера TURN, сколько существует соединений?
а) 6 б) 12 или больше?
В случае однорангового вещания другим узлам, сколько сообщений будет получено и передано сервером TURN?
1 ответ
Будет n×(n-1) соединений. Каждый узел отправляет поток всем другим узлам. В случае двух пиров это один поток на пира, всего два потока. Для четырех пиров это три потока на пира в общей сложности для 12 потоков.
Предполагая, что ни один узел не может подключиться напрямую, все они должны быть направлены через сервер TURN.
Сервер TURN является "тупым" ретранслятором, он просто ретранслирует поток как есть и оставляет всю логику и обработку потока для клиентов. Таким образом, каждый клиент должен будет отдельно кодировать три разных потока для отправки трем разным узлам.
Чтобы иметь что-то более эффективное, вам нужен медиа-сервер, такой как популярный Kurento, который может принимать один поток и перераспределять ("транслировать") его нескольким отдельным клиентам. Т.е. он берет на себя задачу логики и потоковой обработки. Это требует более сложной настройки и более мощного сервера, чем TURN. На практике вы, вероятно, захотите заплатить SaaS-провайдеру за это, а не создавать своего собственного.