Как работают потоковые сервисы? - PullRequest
0 голосов
/ 08 октября 2019

Я работаю над приложением screenhare. В настоящее время он работает следующим образом: приложение c ++ захватывает скриншоты с экрана, сжимает их и отправляет на сервер через TCP (записано в node.js)Клиенты (те, кто хочет видеть общие данные) имеют ссылку, которую они вставляют в браузер и подключаются к серверу. Чем сервер передает данные клиентам. Проблема в том, что сервер может обрабатывать около 10-15 клиентов одновременно, когда мне нужно около 1000-1500.

Я знаю, что потоковые платформы (например, twitch или youtube) могут обрабатывать до 1000000 (или даже больше)соединения. Я хотел бы знать, как они это делают. Чтобы быть более конкретным: 1) протоколы, которые оптимально использовать как для передачи общих данных -> сервер, так и сервер -> браузерные клиенты;2) любые другие советы и рекомендации (примеры кода, статьи и т. Д.) Для его реализации.

1 Ответ

0 голосов
/ 09 октября 2019

если вы хотите получать данные в реальном времени от клиента к серверу (data -> server), предложите вам реализовать rtp через udp / tcp или mpeg2ts через udp / tcp.

для поддержки сервером вещанияданных на несколько клиентов (сервер-> браузер), предлагаем вам реализовать потоковую передачу MPEG DASH / HLS (Nginx, Appache - HTTP-сервер).

MPEG DASH / HLS - поддержка потоковой передачи мультимедийных данных на основе доступной пропускной способности. Большинство браузеров поддерживают потоковую передачу MPEG DASH / HLS через проигрыватель javascript.

Существует множество решений с открытым исходным кодом, доступных для одного и того же.

...