« pigbot考察(JP) | Main | Bit演算子 »

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

Post a comment