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