Моя компания внедряет сервер аудиочата с использованием Wowza Media Server, но нам нужны некоторые рекомендации, которые помогут нам решить следующую проблему пропускной способности:
СИТУАЦИЯ:
У нас есть система аудио-чата, благодаря которой пользователи могут сотрудничать с другими. N пользователей публикуют на своем собственном аудиоканале, подписываясь на N-1 аудиоканалы (остальные пользователи минус свои).
ПРОБЛЕМА:
Пропускная способность увеличивается довольно быстро, когда вы начинаете добавлять больше пользователей. Например, скажем, 4 пользователя онлайн - Пользователь A, Пользователь B, Пользователь C и Пользователь D. Если каждый пользователь публикует аудиоканал со скоростью 8 кбит / с, на который подписываются все другие пользователи, тогда общая используемая пропускная способность будет огромной. 96 кбит / с:
Пользователь A = 24 Кбит / с (из 3 потоков: 8 Кбит / с от подписки на пользователя B, 8 Кбит / с от подписки для пользователя C и 8 Кбит / с от подписки для пользователя D) +
Пользователь B = 24 Кбит / с (из 3 потоков: 8 Кбит / с от подписки на пользователя A, пользователя C и пользователя D) +
Пользователь C = 24 Кбит / с (из 3 потоков: 8 Кбит / с от подписки на пользователя A, пользователя B и пользователя D) +
Пользователь D = 24 Кбит / с (из 3 потоков: 8 Кбит / с от подписки на пользователя A, пользователя B и пользователя C) = всего 96 Кбит / с
ЧТО Я ДУМАЮ, ЧТО МЫ ДОЛЖНЫ ДЕЛАТЬ:
Объедините аудиоканалы (в режиме реального времени) всех пользовательских каналов в сети (кроме своих) и попросите каждого пользователя подписаться на этот уникальный, недавно слитый канал, например:
Пользователь A = 8 Кбит / с (из 1 объединенного потока пользователей B, C и D) +
Пользователь B = 8 Кбит / с (из 1 объединенного потока пользователей A, C и D) +
Пользователь C = 8 Кбит / с (из 1 объединенного потока пользователей A, B и D) +
Пользователь D = 8 Кбит / с (из 1 объединенного потока пользователей A, B и C) = всего 32 Кбит / с
Вы можете видеть, где эта проблема может быстро выйти из-под контроля, поскольку в этом примере только 4 человека онлайн одновременно. Допустим, вы добавили еще один на общую сумму 5, тогда в соответствии с нашей текущей настройкой пропускная способность будет использовать 20 различных потоков подписки на общую сумму 160 Кбит / с. Принимая во внимание, что оптимальное объединенное решение добавило бы только дополнительные 8 Кбит / с на каждого дополнительного пользователя, таким образом, всего 40 Кбит / с для 5 пользователей, 48 Кбит / с для 6 пользователей и т. Д.
ТАК, есть ли у кого-нибудь какие-либо предложения относительно того, как мне это сделать?