用STOMP集成Flex3.0和RabbitMQ

用STOMP集成Flex3.0和RabbitMQ
作者 Moxie Zhang译者 宋玮 发布于 2008年3月16日 下午8时48分
社区
Java
主题
RIA,
消息传送
在Flex on Rails上张贴的一篇文章中,Derek Wischusen与我们分享了他使用ActionScript 3 STOMP客户端将RabbitMQ与Flex 3集成在一起的试验。
RabitMQ是一个开源的企业消息传递系统:
RabitMQ是一个完整的、高可靠的企业消息传递系统。RabbitMQ客户端类库及后台程序(broker daemon)可一起被用于创建一个AMQP网络,或者单独使用它们以便给建立起来的网络带来RabbitMQ的好处。
RabitMQ是AMQP协议的实现,该协议是消息传递中间件的一个开放标准。STOMP则是面向流文本的消息传递协议。Wischusen所尝试的是去利用RabbitMQ的STOMP适配器。
为了使读者理解该试验是如何工作的,Wischusen给我们共享了相应的资源和源代码:
o 按照其指南所示步骤,让带有STOMP适配器的RabbitMQ来运行。
o 下载Flex例子应用的项目文件。
接下来,Wischusen解释了这个Flex例子项目到底实现了什么:
该项目有两个单独的应用组成:ImageSender和ImageReceiver。该项目文件也包含了已编译的as3-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应用端(ImageSender)被捕获的,该图像怎么被发送至RabbitMQ服务器,消息如何被发送到消息消费者应用(ImageReceiver),以及这个消息怎样触发了一个事件而从RabbitMQ服务器装载这个图像。这是面向消息的RIA应用概念的一个有趣的演示。
查看英文原文:Integrating Flex 3.0 and RabbitMQ Using STOMP

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏