Является ли zeromq правильным решением для видеочата в одноранговой сети? - PullRequest
5 голосов
/ 06 января 2012

Мне было интересно, верна ли моя идея zeromq?Я думал о написании однорангового приложения чата с использованием zeromq, но, как я прочитал в дальнейшем, zeromq, кажется, находится на более низком уровне, чем тот, который вы бы использовали (сокеты tcp).Хорошо ли использовать zeromq для записи одноранговых приложений чата или этот вариант использования не применим?

Ответы [ 2 ]

11 голосов
/ 06 января 2012

Во-первых, я бы не согласился с вашим утверждением, что zeromq больше низкого уровня, чем сокеты. AFAICT Zeromq представляет API, который похож на API сокетов. Однако он также может обрабатывать другие вещи, такие как отправка сообщений нескольким клиентам с помощью одного и того же вызова.

Во-вторых, ваш вопрос не очень ясен: что вы подразумеваете под хорошо : легко написать (поскольку вы говорите о низкоуровневом), надежно, достаточно эффективно и т. Д.? Вы можете использовать все, что захотите, уровень сложности реализации, конечно, будет отличаться.

Кроме того, вам, вероятно, следует использовать udp вместо tcp в приложении видеочата, поскольку больше важно, чтобы данные поступали вовремя, а не все данные, но это совсем другая тема. Если вы можете использовать zeromq с udp (и вам придется это исследовать), я не вижу причин, почему вы не могли бы использовать его для видеочата.

Основной фактор, который необходимо учитывать, заключается в том, можете ли вы передавать данные между одноранговыми узлами достаточно быстро, чтобы обеспечить приемлемое QoS: AFAIR максимальный RTT около 300 мс считается приемлемым для разговорных услуг.

Следующая ссылка применяется к VOIP, но также должна применяться к требованиям видеочата:

Большинство абонентов замечают задержки в оба конца, когда они превышают 250 мсек, поэтому бюджет задержки в одном направлении обычно составляет 150 мсек. 150 мсек также указывается в рекомендации МСЭ-Т G.114 как максимальная желаемая односторонняя задержка для достижения высококачественного голоса. Помимо этой латентной задержки звонящие начинают чувствовать себя неловко, разговаривая в двух направлениях, и обычно заканчивают тем, что разговаривают друг с другом. При задержке туда и обратно 500 мсек и выше телефонные звонки нецелесообразны, когда вы почти можете рассказать шутку и посмеяться над другим парнем после того, как вы вышли из комнаты.

0 голосов
/ 18 февраля 2017

Как указывает Ральф, ZeroMQ очень высокого уровня, а не низкого уровня. Кроме того, обычно рекомендуется не использовать ZeroMQ для видео просто потому, что поддержка UDP является новой и еще не универсальной ( см. Этот ответ ). Как правило, ZeroMQ был построен с использованием сокетов TCP, и хотя архитектура PUB / SUB имитирует UDP, вы не получите реальной производительности UDP (что крайне важно для видео), поскольку проверка ошибок в сокетах TCP затрудняет определение задержки достаточно низко, чтобы получить плавный поток видео.

...