2009-05-29 2 views
2

web2py(v1.63)とFlex 3を使用しています。web2py v1.61では、@ service.amfrpcでコントローラ機能にタグを付けることができる@serviceデコレータが導入されました。 。 http://..../app/default/call/amfrpc/[function]を使用して、その機能をリモートから呼び出すことができます。 http://www.web2py.com/examples/default/tools#servicesを参照してください。誰かがこのような関数を呼び出すためにFlex 3を設定する方法の例を持っていますか?これまでに試したことは次のとおりです。web2pyの@ service.amfrpcデコレータでmx:RemoteObjectを使用する

私のシナリオでは、宛先属性と送信元属性の値はどのような値にする必要がありますか?私はhttp://corlan.org/2008/10/10/flex-and-php-remoting-with-amfphp/のようなweb2py以外の実装についていくつかの記事を読んだことがありますが、関数に直接マップするURIを持つ代わりに、.../gateway.phpファイルを使用しています。

また、flash.net.NetConnectionを使用してリモートファンクションを正常に呼び出すことができましたが、私が見つけたドキュメンテーションのほとんどは、以前のFlex 3の方法であると考えています。 http://pyamf.org/wiki/HelloWorld/Flexを参照してください。ここでのNetConnectionコードは次のとおりです。

gateway = new NetConnection(); 
gateway.connect("http://{mysite}/{myapp}/default/call/amfrpc/"); 
resp = new Responder(show_results, on_fault); 
gateway.call("getContacts", resp); 

-Rob

答えて

1

私は@のservice.amfrpcデコレータでのRemoteObjectを使用する方法を発見していません。しかし、NetConnectionを使用して古いActionScriptコードを使用することができます(これは私が最初に投稿したものに似ています)。そしてそれをweb2py側の@ service.amfrpc関数とペアにします。これはうまくいくようです。最初に共有したNetConnectionコードで変更したいことの1つは、接続ステータスのイベントリスナーを追加することです。必要があると感じる場合はリスナーを追加できますが、NetStatusEventは必須であることがわかりました。この状態は、サーバーが応答していない場合に発生します。

gateway = new NetConnection(); 
gateway.addEventListener(NetStatusEvent.NET_STATUS, gateway_status); 
gateway.connect("http://127.0.0.1:8000/robs_amf/default/call/amfrpc/"); 
resp = new Responder(show_results, on_fault); 
gateway.call("getContacts", resp); 

-Rob

:あなたは、セットアップの接続は次のようになります。
関連する問題