Pergunta

Eu estou olhando para os Trilhos de desenvolvimento como um back-end de uma aplicação Flex e estou tentando descobrir a camada de comunicação entre os Trilhos app e o Flash Player.Todas as coisas que eu estou achando, sugerem o uso de serviços web SOAP para se comunicar.

No entanto, o Flash oferece suporte a AMF o que é bom e rápido (e original).Existe alguma maneira de se comunicar através da AMF a partir de uma app Rails, suportando todos os "bons" coisas sobre AMF (conversão automática de tipo, dados empurrar, etc.).

Foi útil?

Solução

WebORB ou RubyAMF o que você pode usar para responder no AMF da Carris, as abordagens são um pouco diferentes para cada um, de modo que depende das suas necessidades.RubyAMF é discutido nos últimos capítulos de a Flexível Trilhos e-book que é um bom recurso, usando Rails com o Flex.

Outras dicas

Eu estou no meio de escrever o rails/aplicação flex e nós estamos nos movendo para utilizar um JSON comunicação dentro o RESTO do quadro.Simples pedidos de HTTP a partir do Flex lado de manipulação de respostas JSON parecia a melhor maneira de dissociar o cliente e o servidor.XML é tão fácil.

Por que vale a pena, estamos usando o PureMVC framework do flex do lado do bem, mantendo-se as respostas em um cliente de lado do modelo.

Você não iria usar serviços web SOAP, mas, ao invés de 'nativos' RESTO web services, que são nativos no Rails.O livro citado pelo Desarme acima é, na verdade, de que:como usar um FLEX cliente como o front-end de uma aplicação Rails usando o RESTO (o que significa XML).

A AMF protocolo foi inicialmente construído pela Adobe como um protocolo binário para permitir FLEX front-ends para falar CodeFusion e, claro, Java, servidor de aplicações.Não é de graça, além de utilizar o BlazeDS para os quais você realmente não tem muito apoio.E depois, claro, você terá que escolher um plugin capaz de falar com BlazeDS usando o protocolo AMF (novamente, consulte Desarme postagens) e contar com ele.

Você ficaria surpreso com o quão bem direta Flex para o Rails através de RESTO de obras, além de você não ter que depender de terceiros.Eu recomendo que você experimentá-lo.

Espero que isso ajude

Vá com RubyAMF se você quer um estilo MVC interação com contollers que pode responder a/gerar AMF.

Use WebOrb para qualquer outro estilo, incluindo acesso directo ao modelo de objetos.

Eu construí apps usando os três métodos (WebOrb, RubyAMF, RESTO)...

WebOrb para o Rails está praticamente morto, ele ainda não foi atualizado por bastante tempo.Que dizia que eu era capaz de criar um pouco de Flex/Ruby magia que faz Flex acesso ao Rails' modelo de objetos transparentes...se você estiver interessado eu vou desenterrá-lo e enviá-lo para você.

RubyAMF é bom, mas não é tão Flexível (ha!) como WebOrb.

RESTO de retornar o JSON é um piscar de olhos, e se eu tenho que criar outro (espero que não) é isso que eu vou continuar a usar.

YMMV.

Há um plugin chamado Rails WebORB para Ruby on Rails que usa o sistema de interação remota com a AMF.

Você pode usar WebORB ou RubyAMF, ou simplesmente XML - Rails é muito inteligente quando se trata de XML, com algumas dicas aqui e ali.

Podemos utilizar o XML para falar entre os nossos Trilhos de apps e os nossos Flex aplicativo web, quase que exclusivamente.É muito simples.

Para obter dados a partir de seu Trilhos aplicativo, basta criar um HTTPService com result_type de e4x, e chamar sua url.Em seu trilhos controlador, faça algo como:

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

Às vezes, o Rails irá adicionar a etiqueta para a final.Se isso acontecer, mude o seu controlador para:

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

Se você deseja enviar dados para o Rails app, é tão fácil..

<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>

e em seu controller:

def add_person
  p=Person.create(params[:person])
  render :xml => {:result => "Success"}.to_xml.target!
end
  • Kevin
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top