Технология p2p от Adobe все больше набирает обороты. Мне посчастливилось поработать с ней при написании видео звонков для проекта vrublevku.ru.
Эйфория от того, что трафик между пользователями будет ходить напрямую прошла быстро. После нескольких неудачных соединений по p2p, пришлось искать решение проблемы. Альтернатива нашлась быстро — если не удалось соединится по p2p, то переключаем пользователя на live соединение. В итоге, за время тестирования обнаружилось, что больше половины пользователей соединяются по p2p. Остальные переключаются на live соединение.
Реализовать переключение помог шаблон проектирования «состояние». В примере были убраны методы, которые можно с легкостью реализовать самим.
Использование
Connections.asОсновной класс для управления состояниями.
IConnection.as
Интерфейс для состояний описывает необходимые метода, которые нужно реализовать в других классах.
PeerState.asСостояние для p2p подключения.
LiveState.as
Состояние для live подключения.
К сожалению перейти полностью на p2p технологию не удалось, но она позволила сэкономить большую часть трафика между пользователями.
UPD
Нашел статью от Adobe на данную тему — Best practices for real-time collaboration using Flash Media Server
Добавить комментарий