Флэш-игра Facebook клиент-сервер связи - PullRequest
0 голосов
/ 06 июля 2011

В настоящее время мы работаем над небольшой инди-карточной игрой для Facebook, которая, как мы надеемся, достигнет сотен тысяч игроков (в конечном итоге).

У нас большинство проблем выяснено (масштабируемость, сервер)архитектура и т. д.) - однако один вопрос - связь между клиентом и сервером.

У нас есть следующие требования:

  • Push-сообщения на стороне сервера (без запроса клиентских сообщений)
  • Высокая масштабируемость (должна поддерживать сначала сотни, а затем, надеюсь, тысячи CCU)
  • Безопасный, надежный уровень
  • Хорошо работает с большинством компьютеров, маршрутизаторов и браузеров
  • Работает с Adobe Flash / AS3

Первое, что пришло на ум, было сокетное соединение, но мне было интересно, есть ли лучшее решение, которое отвечает нашим потребностям?

Спасибо!

Ответы [ 2 ]

1 голос
/ 06 июля 2011

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

Извините, если я скучаю, понял.

1 голос
/ 06 июля 2011

Соединение через сокет почти неизбежно (см. транспортные уровни ).

Хорошей идеей является использование TCP: он гарантирует доставку (высокую надежность), ориентирован на "соединение".Есть некоторые недостатки, но другие альтернативы недоступны на большинстве компьютеров, маршрутизаторов и браузеров.

Более важный вопрос: что вы собираетесь отправлять по TCP?Как правило, рекомендуется использовать что-то, что можно использовать во Flash и на вашем сервере (см., Например, Удаленный вызов процедур ).

«Push-сообщения», как правило, являются проблемой только с HTTPсоединения, так как он был разработан для обработки синхронных запросов.Однако во Flash у вас нет этого ограничения.

Безопасность можно добавить, «обернув» TCP-соединение: используйте SSL или TLS.

  • XML-сериализация (XML-RPC): простота в разработке и обслуживании, умеренная производительность, возможно надежная.
  • RTMP ( Протокол обмена сообщениями в реальном времени ): встроенный в Flash, отличная производительность, отлично подходит для игр в реальном времени и может проходить черезHTTP (чтобы превзойти любой брандмауэр / маршрутизатор).

См. NetConnection класс и Формат сообщения действия .

Adobe Integrated Runtime и Adobe Flash Player используют AMF для связи между приложением и удаленным сервером.AMF кодирует удаленные вызовы процедур (RPC) в компактное двоичное представление, которое может передаваться по протоколу HTTP / HTTPS или протоколу RTMP / RTMPS.Объекты и значения данных сериализуются в этот двоичный формат, что повышает производительность, позволяя приложениям загружать данные до 10 раз быстрее, чем с текстовыми форматами, такими как XML или SOAP.

(с * 1033)*http://www.pyamf.org/)

...