PHP <---> постоянное соединение FLASH (потоковая передача данных) - PullRequest
2 голосов
/ 11 марта 2012

Идея заключается в многопользовательской браузерной игре, которая взаимодействует с сервером PHP.

Прямо сейчас это работает так: Каждую секунду браузер выполняет ajax-вызов php-скрипта, который проверяет все и возвращает ответ. В целом все работает нормально, но проблема в том, что браузер через некоторое время перегружается (из-за тысяч запросов AJAX), и играть становится уже невозможно. Также задержка в 1+ секунды довольно велика.

Моя идея состоит в том, чтобы иметь простой флэш-пиксель, который будет иметь двустороннюю связь с сервером. Например:

  • Пользователь делает и действие
  • Функция Javascript вызывает пиксель флэш-памяти с некоторыми параметрами
  • Флэш отправляет запрос на сервер
  • Сервер "объявляет" об этом действии всем другим слушателям флеш-памяти (пользователи онлайн)
  • Ответ с сервера получен
  • Обновлен пользовательский интерфейс

Нечто подобное.

Данные, которые отправляются и принимаются, могут быть просто строками (json) или любыми другими.

Я читал о различных RTMP-серверах, а также о smartfoxserver.com . Не было бы проблем с покупкой любого из них, но на мой взгляд, они предлагают слишком много для моих нужд (потоковое аудио и т. Д.). Также они не основаны на PHP. Таким образом, использование RTMP-сервера потребует запуска PHP-скрипта при необходимости. Это также не будет проблемой, пока пользователь не сможет играть без лагов.

В случае, если решением будет установка RTMP-сервера, в PHP есть « RTMP-клиент », но, к сожалению, не так много информации / документации об этом.

В любом случае, если решение не найдено, я собираюсь использовать тот же «пиксель» Flash, который будет отправлять запросы и получать ответы через PHP AMF. Он будет иметь небольшие задержки и не будет постоянным, но он должен решить часть проблемы.

Может быть, некоторые из вас уже имели эту проблему и нашли решение или любые другие идеи о том, как это реализовать.

Спасибо

P.S. Google Wave использовал нечто подобное в интерактивном чате, когда один пользователь печатал, а другой мог видеть это в режиме реального времени.

Ответы [ 2 ]

2 голосов
/ 11 марта 2012

Вы можете использовать XMLSocket в AS3 для установления соединения сокета с сервером PHP .

0 голосов
/ 11 марта 2012

rtmfp предназначен именно для того, что вы хотите.http://www.adobe.com/products/flash-media-enterprise/rtmfp-faq.html

...