Frage

Ich betrachte die Rails-Entwicklung als Backend für eine Flex-Anwendung und versuche, die Kommunikationsschicht zwischen der Rails-App und dem Flash Player herauszufinden.Alle Dinge, die ich finde, deuten darauf hin, SOAP-Webdienste für die Kommunikation zu verwenden.

Allerdings unterstützt Flash AMF, was schön und schnell (und nativ) ist.Gibt es eine Möglichkeit, über AMF von einer Rails-App aus zu kommunizieren und gleichzeitig alle „netten“ Dinge von AMF zu unterstützen (automatische Typkonvertierung, Daten-Push usw.)?

War es hilfreich?

Lösung

Es gibt WebORB oder Flexible Rails E-Book, auf dem mit Rails mit Flex eine gute Ressource ist.

Andere Tipps

Ich bin in der Mitte eine Schienen / Flex-Anwendung zu schreiben, und wir ziehen eine JSON-Kommunikation innerhalb des REST Rahmen zu verwenden. Einfache HTTP-Anfragen von den Flex Seite Handhabung JSON Antworten schienen wie der beste Weg, um den Client und Server zu entkoppeln. XML ist genauso einfach.

Für das, was es wert ist, verwenden wir den PureMVC Rahmen auf der Flex-Seite als auch, halten die Antworten in einem clientseitige Modell.

Sie würden nicht SOAP Web Services verwenden, sondern 'native' REST Web-Services, die in Rails heimisch sind. Das Buch von Defusion oben zitierten ist eigentlich darüber. Wie ein FLEX-Client als Front-End einer Rails-Anwendung verwenden, REST (was bedeutet, XML) mit

Das AMF-Protokoll wurde von Adobe als binäres Protokoll aufgebaut, damit FLEX-Frontends in erster Linie worden Codefusion und natürlich Java Server-Anwendungen zu sprechen. Es ist nicht kostenlos, abgesehen von der Verwendung von Adobe BlazeDS für die Sie eigentlich nicht viel Unterstützung. Und dann natürlich, werden Sie ein Plugin fähig wählen müssen, um BlazeDS sprechen die AMF-Protokoll (siehe wiederum Defusion Beiträge) und verlassen sich darauf.

Sie würden überrascht sein, wie gut direkte Flex Rails über REST arbeitet, und Sie müssen nicht auf Dritte angewiesen. Ich würde empfehlen, Sie versuchen es.

Hope, das hilft

Ruby AMF gehen, wenn Sie eine MVC-Stil Interaktion mit Controllern möchten, die reagieren kann / erzeugen AMF.

Verwenden Sie WebOrb für jede andere Art, einschließlich direkter Zugriff auf Objekte zu modellieren.

Ich habe Apps mit allen drei Methoden erstellt (WebOrb, RubyAMF, REST) ​​...

WebOrb for Rails ist so gut wie tot, es wurde schon seit einiger Zeit nicht mehr aktualisiert.Trotzdem konnte ich ein wenig Flex/Ruby-Magie erschaffen, die den Flex-Zugriff auf die Modellobjekte von Rails transparent macht ...Wenn Sie Interesse haben, werde ich es ausgraben und Ihnen schicken.

RubyAMF ist nett, aber nicht so flexibel (ha!) wie WebOrb.

Die Rückgabe von JSON durch REST ist ein Kinderspiel, und wenn ich ein weiteres davon erstellen muss (ich hoffe nicht), werde ich es weiterhin verwenden.

YMMV.

Es gibt eine Rails Plugin namens WebORB für Ruby on Rails , die Remoting verwendet mit AMF.

Sie können mit WebORB oder RubyAMF oder einfach XML - Rails ist ziemlich clever, wenn es um XML kommt, mit ein paar gotchas hier und da

.

Wir verwenden XML zwischen unseren Rails-Anwendungen und unserer Flex Web-Anwendung, fast ausschließlich zu sprechen. Es ist ziemlich einfach.

Für Daten aus Ihrer Rails-Anwendung abrufen, erstellen Sie einfach eine Httpservice mit result_type von e4x und Ihre URL aufrufen. In Ihrem Schienen-Controller, so etwas wie:

def people
  render :xml => Person.all.to_xml
end

Manchmal Rails werden den Tag zu Ende hinzuzufügen. Wenn dies der Fall ist, ändern Sie Ihre Controller an:

def people
  render :xml => Person.all.to_xml.target!
end

Wenn Sie Daten senden möchten Ihre Rails-Anwendung, es ist nur so einfach ..

<mx:HTTPService id="theservice" url="http://localhost:3000/svc/add_person" method="POST">
 <mx:request>
  <person>
   <first>Firstname</first>
   <last>Lastname</last>
  </person>
 </request>
</HTTPService>

und in Ihrem Controller:

def add_person
  p=Person.create(params[:person])
  render :xml => {:result => "Success"}.to_xml.target!
end
  • Kevin
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top