Я пишу Red5 приложение, которое предоставляет видеочат 1-на-1 Flash-клиенту через RTMP .
К сожалению, большинство учебных пособий, которые мне удалось найти, были в лучшем случае отрывочными, а документация самого Red5 имеет тенденцию быть расплывчатой, когда речь идет о концепциях API и предполагаемом использовании.
Короче говоря, я немного застрял и ищу подсказки по реализации Red5 ApplicationAdapter
. Мрачные детали заключаются в следующем:
Прежде всего, связи бывают двух видов: посетители и консультанты. Посетитель должен иметь возможность указать, с каким консультантом он хочет общаться. Консультант просто подключается к запрашивающему посетителю, если консультант не занят обслуживанием другого.
Очевидно, что каждое соединение RTMP имеет двусторонний трафик: и отправка, и получение видео. С точки зрения сервера, соединения приносят множество видеопотоков, которые получают свои конечные точки приема, назначенные по запросу.
Так как несколько видео-разговоров могут выполняться одновременно, основная задача приложения состоит в том, чтобы обрабатывать сопоставление потоков посетителей с консультантами и предоставлять список с указанием состояния каждого консультанта (занято / доступно) через AMF .
Итак, в общем, у меня есть довольно хорошая идея, к чему я стремлюсь, но как этого добиться с помощью Red5 все еще остается загадкой.
Надеюсь, кто-нибудь может просветить меня в любом или во всех следующих случаях:
Какой самый простой способ установить тип соединения (посетитель / консультант)?
Какие классы API следует использовать для реализации постоянного, общедоступного списка активных соединений для сообщения о состоянии каждого консультанта?
Как динамически переключать конечные точки получения, когда целью является подключение определенного посетителя к выбранному консультанту?