Флэш-сокеты, одноранговые возможности - PullRequest
1 голос
/ 03 августа 2011

Краткое вступление: у нас закончена флеш-игра тетрис, и мы надеемся добавить в игру многопользовательскую функциональность. После нескольких дней исследований возможностей флэш-памяти и сокетов я запутался еще больше. Быстрый отказ от ответственности, я новичок в области сокетов / сетей в целом.

Из того, что я собрал в сети, обычные флеш-сокеты не могут обрабатывать одноранговые соединения из-за действующей системы политик. Чтобы флэш-память выполняла p2p, необходимо использовать сервер с поддержкой RTMFP (например, флэш-медиа-сервер и т. Д.), Чтобы справиться с первоначальными рукопожатиями, и оттуда флэш-память может передавать данные в режиме p2p.

Изменить: см. Первый ответ для всеобъемлющего обновления по этому вопросу.

Ответы [ 3 ]

2 голосов
/ 04 августа 2011

1) Для политики сокетов возьмите мой Perl-скрипт или модуль Apache (оба работают хорошо): http://code.google.com/p/mod-socket-policy/ - он будет обслуживать клиентов, подключающихся к порту 843.

Но это не такдостаточно из-за корпоративных пользователей за брандмауэрами / прокси-серверами, которые не могут подключиться к порту 843, поэтому вам нужно добавить обработку политик сокетов и в свой собственный код сервера (т.е. отвечать на входящие \ 0 запросов).

2) Для RTMFP - не делайте этого, потому что:

a) Cirrus не вариант, потому что это бета-версия, а не для коммерческого использования,Кроме того, он кажется устаревшим для FMS4, так как долго, прежде чем он будет прекращен?

b) Вариант Flash Media Server 4 очень дорогой.Для корпоративной версии (требуется для RTMFP) Adobe даже не публикует цены публично.Ваш единственный вариант - FMS4 для AWS, но он также дорогой: Adobe Media Server 4 стоит с Amazon?

c) Существует проект OSS для RTMFP, но он не готовпока: OpenRTMFP Cumulus

d) Для некоторых пользователей RTMFP просто не работает

Поэтому я предлагаю использовать RTMP / RTMPT, который работает для всех пользователей, в том числе.корпоративные и используйте для этого Red5: http://red5.org/

1 голос
/ 03 августа 2011

Red5 не поддерживает RTMFP.Цены на Flash Media Server вы получите на веб-странице Adobe.

0 голосов
/ 03 августа 2011

В Adobe Labs существует технология, называемая Cirrus .Это абсолютно бесплатно, и вам не нужно будет запускать специальные серверы, кроме обычного (php, ruby ​​...), который будет выполнять первоначальное рукопожатие (это должен делать обычный запрос http).если у вас есть для экс.2 игрока, которые хотят играть вместе, первый получает свой Cirrus-id, передает его на ваш сервер, и это значение сохраняется в банке «доступных игроков».Когда второй клиент подключается, серверы проверяют банк и возвращают этот идентификатор второму игроку, и наоборот.Наконец, два клиента flash-плеера устанавливают прямое соединение через rtmfp.Есть также статья , которая объясняет все это более подробно.

...