Дистанционирование рельсов вспышки / гибкого трубопровода. AMF, WebORB, не совсем уверен, что использовать


Я пытаюсь построить игру, которая отправляет игровые данные в приложение rails. Я построил его в javascript, но совершенно очевидно, что Flash будет делать лучшую работу, поэтому теперь я собираюсь построить его во Flash. Используя projects sprouts, который является Ruby-оболочкой для сборки проектов as3, если кто-то заинтересован.

Я провел много исследований по соединению Rails-приложений с Flash. Мне на самом деле не нужно использовать flex, но это OS sdk, который использует sprouts. Есть WebORB. В turotrials ибо это беспорядок и действительно сложно. Затем Ruby AMF, который имеет несколько драгоценных камней и плагинов. Я действительно не совсем уверен, что использовать.

В конце концов, я просто хочу что-то сделать и запустить. Мне просто нужно ... swf, чтобы получить массив в ruby, а затем отправить ответ " да " или "нет", если пользователь прошел уровень или нет.

Итак, я снова ищу способ подключения Flash / Flex к моему приложению Rails. Метод, который одновременно прост и будет использоваться для Rails 3.

1 2

1 ответ:

Я думаю, что лучший способ-это иметь либо простое действие Rails, которое вызывается через простой вызов API. Например (рельсы):

Https://whatever.com/games/new?parameter1=something&parameter2=something&apk=3423aad23h234h2827237322373232234234

Где apk-это ключ api, который вы назначаете пользователям с поддержкой api (например, в вашем контроллере пользователей). Это позволит избежать случайных взломов вашего приложения на стороне Rails. Поскольку вы программируете обе стороны из него (Flash и Rails стороны), вы могли бы дополнительную безопасность с другой хэш на основе даты или что-то еще.

Чтобы массив Ruby вернулся в приложение Flash, просто сделайте что-то вроде этого, чтобы либо получить обратно XML или JSON и проанализировать его на стороне Flash (простое действие create ниже):

            format.json  { render :json => @this_entry, :status => :created, :location => @this_entry }
            format.xml  { render :xml => @this_entry, :status => :created, :location => @this_entry }