Идея заключается в многопользовательской браузерной игре, которая взаимодействует с сервером PHP.
Сейчас это работает так: каждую секунду браузер выполняет ajax-вызов php-скрипта, который проверяет все и возвращает ответ. В целом он работает нормально, но проблема в том, что браузер через некоторое время перегружается (из-за тысяч запросов ajax), и играть больше становится невозможно. Также задержка более 1 секунды - это довольно много.
Моя идея состоит в том, чтобы иметь простой флэш-пиксель, который будет иметь двустороннюю связь с сервером. Например:
- Действия пользователя и действия
- Функция Javascript вызывает пиксель flash с некоторыми параметрами
- Флэш отправляет запрос на сервер
- Сервер «объявляет» об этом действии всем остальным слушателям flash (пользователям онлайн)
- Получен ответ от сервера
- Пользовательский интерфейс обновлен
Что-то такое.
Отправляемые и получаемые данные могут быть просто строками (json) или любыми другими.
Я читал о различных серверах RTMP, а также о smartfoxserver.com. Купить любой из них не составит труда, но, на мой взгляд, они предлагают слишком много для моих нужд (потоковое аудио, видео и т. Д.). Также они не основаны на PHP. Таким образом, использование RTMP-сервера потребует от него запуска PHP-скрипта при необходимости. Это тоже не будет проблемой, пока пользователь не сможет играть без задержек.
В случае, если решением будет установка сервера RTMP, существует "клиент RTMP "в PHP, но, к сожалению, об этом не так много информации / документации.
В любом случае, если решение не будет найдено, я буду использовать тот же «пиксель» Flash, который будет отправлять запросы и получать ответы через PHP AMF. Он будет иметь небольшие задержки и не будет постоянным, но должен решить часть проблемы.
Возможно, у некоторых из вас уже была эта проблема и они нашли решение, или приветствуются любые другие идеи, как это реализовать.
Спасибо
P.S. Google Wave использовал нечто подобное в своем интерактивном чате, когда один пользователь печатал, а другой мог видеть это в режиме реального времени.