WebORB(JP)
前回Rubyを(mt)上で動かし、gemをインストールするところまでテスト出来ているので、WebORBを使ってflashremoting経由で直接データをやりとりしてみる。今の時代flashサーバ間のデータのやりとりにxmlは必須ではない。むしろデータとしては冗長であり、flashremoting経由でAMF通信できることがこの上楽である。
WebORBのインストール
(mt)でセットアップする場合に限って、手順を説明する。
myrailsappという名前でアプリを作成する場合、まずサーバへsshでログインする。
cd $HOME/../../containers mkdir rails && cd rails rails myrailsapp cd myrailsapp ruby script/plugin install http://themidnightcoders.net:8089/svn/weborb mtr -u serveradmin@60000feet.com -p <password> add myrailsapp $PWD weborb.60000feet.com mtr -u serveradmin@60000feet.com -p <password> start myrailsapp mtr -u serveradmin@60000feet.com -p <password> generate_htaccess myrailsapp mtr -u serveradmin@60000feet.com -p <password> create_link myrailsappここまでで、http://weborb.60000feet.comにアクセスできるようになる。
WebORBへの接続
最終的にはクラス化するのがいいが、接続テストなので説明用に簡単に書くと次のようになる。"http://weborb.60000feet.com/weborb"が、weborbのアドレスになり、実際にサービスを行うrbファイルを"FlexRemotingTest"と指定している。_svcがこのアドレスのこのサービスのプロキシとして働くので、プロキシに対してメソッドを呼ぶことで結果を取得できる。
import mx.remoting.Service; _svc = new Service("http://weborb.60000feet.com/weborb", null, "FlexRemotingTest", null, null);次にエコーテストをしてみる。サーバに値を送り、そのままその値をクライアントに戻す最も簡単なテストである。echoIntというメソッドが上記rbファイルに記述されているので、そのリモートメソッドを次のようにして呼ぶことが出来る。
import mx.remoting.*; import mx.rpc.*; var pc:PendingCall = _svc.echoInt(20); function onEcho (re:ResultEvent){ trace(re.result);//20 } pc.responder = new RelayResponder(this, "onEcho", null);