BT

STOMPを使用したFlex 3.0およびRabbitMQの統合

| 作者: Moxie Zhang フォローする 0 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2008年3月19日. 推定読書時間: 5 分 |

Derek Wischusen氏はActionScript 3 STOMPクライアント(source)を使用し、RabbitMQ(サイト・英語)をFlex 3アプリケーションと統合する試みをFlex on Railsの投稿記事(source)に紹介した。

RabbitMQは、以下のようなオープンソースエンタープライズメッセージングシステムである。

RabbitMQは、完全かつ非常に信頼できるエンタープライズメッセージングシステムである。RabbitMQのクライアントライブラリーおよびブロー カーデーモンを一緒に使用してAMQPを作成するか、個別に使用してRabbitMQの利点を確立されたネットワークにもたらすことができる。

RabbitMQはAMQP(source)プロトコルの実装で、 メッセージングミドルウェアのオープンスタンダードである。STOMP(source)は、ストリーミングテキストに配向されたメッセージングプロトコルである。 Wischusen氏が試みたことは、RabbitMQでSTOMPアダプター(ブログ・英語)を使用することである。

この試みがどのようなものであるかが理解しやすいように、Wischusen氏が以下のようにリソースおよびソースコードを示した。

    • このチュートリアルのステップに従って、STOMPアダプターでRabbitMQを実行させる(ブログ・英語)
    • Flexアプリケーションのプロジェクトファイルをダウンロードする(Zip・英語)

そして、Wischusen氏はFlexプロジェクトについて説明した。

このプロジェクトは2つの別個のアプリケーションから成っている。ImageSenderおよびImageReceiverである。プロジェクトファイルには3つのSTOMPとしてコンパイルされたライブラリがあるので、別々にダウンロードする必要がない。

ImageSenderおよびImageReceiverアプリケーションは、STOMPプロトコルを通じてRabbitMQを使用し、メッセージングを交換することで通信する。両方のアプリケーションからの Flexコードが、STOMPクライアントとどのように動作するかを例証するために、Wischusen氏はコードスナイプを提示した。

ImageSender

    "stomp"  />
...

private function init () : void
{
var ch: ConnectHeaders = new ConnectHeaders();
ch.login = "guest";
ch.passcode = "guest"
stomp.connect("localhost", 61613, ch);
}
...
private function sendImage():void
{
var image: ByteArray = ImageSnapshot.captureImage(canvas).data;
stomp.send(destination, image);
}

ImageReceiver

"stomp" message="handleMessages(event)"  />
...
private var destination: String = "/queue/images";

private function init () : void
{
var ch: ConnectHeaders = new ConnectHeaders();
ch.login = "guest";
ch.passcode = "guest"
stomp.connect("localhost", 61613, ch);
stomp.subscribe( destination );
}
...

private function handleMessages(event : MessageEvent) : void
{
var bd: BitmapData = new BitmapData(canvas.width, canvas.height);
var loader : flash.display.Loader = new flash.display.Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onBytesLoaded);
loader.loadBytes(event.message.body);
function onBytesLoaded (event : Event) : void
{
var content : DisplayObject = LoaderInfo( event.target ).content;
bd.draw( content );
canvas.graphics.beginBitmapFill(bd);
canvas.graphics.drawRect(0,0, canvas.width, canvas.height);
canvas.graphics.endFill();
}
}

この試みは、Flex application (ImageSender)からのイメージの取り込み方法、RabbitMQサーバへのイメージの送信方法、メッセージングカスタマーアプリケーション(ImageReceiver)へのメッセージの送信方法およびメッセージがイベントをトリガーしてRabbitMQサーバからイメージをロードする方法を例証している。メッセージング配向RIAアプリケーション概念に関する興味深い例証である。

原文はこちらです: http://www.infoq.com/news/2008/03/flex-rabbitmq-stomp

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT