写点什么

用 STOMP 集成 Flex3.0 和 RabbitMQ

  • 2008-03-16
  • 本文字数:1732 字

    阅读完需:约 6 分钟

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 给我们共享了相应的资源和源代码:

接下来,Wischusen 解释了这个 Flex 例子项目到底实现了什么:

该项目有两个单独的应用组成:ImageSender 和 ImageReceiver。该项目文件也包含了已编译的 as3-stomp 类库,这样你就无需单独下载它了。

ImageSender 和 ImageReceiver 应用将通过 STOMP 协议使用 RabbitMQ 交换消息来进行通讯。为了证明来自两个应用的 Flex 代码是如何与 STOMP 客户端一起工作的,Wischusen 分享了这一代码片断。

在 ImageSender 方面:

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

在 ImageReceiver 方面:

"stomp" message=<span>"handleMessages(event)"</span> /><br></br>...<br></br><span>private</span> <span>var</span> destination: String = <span>"/queue/images"</span>; <p><span>private</span> <span>function</span> init () : <span>void</span> </p><br></br> { <br></br><span>var</span> ch: ConnectHeaders = <span>new</span> ConnectHeaders(); <br></br> ch.login = <span>"guest"</span>; <br></br> ch.passcode = <span>"guest"</span> <br></br> stomp.connect(<span>"localhost"</span>, 61613, ch); <br></br> stomp.subscribe( destination ); <br></br> } <br></br>...<p><span>private</span> <span>function</span> handleMessages(<span>event</span> : MessageEvent) : <span>void</span> </p><br></br> { <br></br><span>var</span> bd: BitmapData = <span>new</span> BitmapData(canvas.width, canvas.height); <br></br><span>var</span> loader : flash.display.Loader = <span>new</span> flash.display.Loader(); <br></br> loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onBytesLoaded); <br></br> loader.loadBytes(<span>event</span>.message.body); <br></br><span>function</span> onBytesLoaded (<span>event</span> : Event) : <span>void</span> <br></br> { <br></br><span>var</span> content : DisplayObject = LoaderInfo( <span>event</span>.target ).content; <br></br> bd.draw( content ); <br></br> canvas.graphics.beginBitmapFill(bd); <br></br> canvas.graphics.drawRect(0,0, canvas.width, canvas.height); <br></br> canvas.graphics.endFill(); <br></br> } <br></br> } <br></br>

该试验示范了一个图像是如何从 Flex 应用端(ImageSender)被捕获的,该图像怎么被发送至 RabbitMQ 服务器,消息如何被发送到消息消费者应用(ImageReceiver),以及这个消息怎样触发了一个事件而从 RabbitMQ 服务器装载这个图像。这是面向消息的 RIA 应用概念的 一个有趣的演示。

查看英文原文: Integrating Flex 3.0 and RabbitMQ Using STOMP

2008-03-16 20:481531
用户头像

发布了 150 篇内容, 共 41.0 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

【网易云信】网易云信 toB 质量保障体系实践

网易智企

质量保障 PaaS平台

钉钉全栈化实践总结-前端篇

阿里技术

前端 钉钉 全栈

Karmada大规模测试报告发布:突破100倍集群规模

华为云开发者联盟

云计算 云原生 华为云 企业号十月 PK 榜

“工程化”对于大型数据平台而言,意味着什么?新一届StartDT Hackathon来了

奇点云

数据平台 奇点云

探究多线程和异步

C++后台开发

多线程 后端开发 异步 linux开发 C++开发

Java面试题解析:如何使用ReentrantLock的条件变量,让多个线程顺序执行?

千锋IT教育

Hexo+Github搭建个人博客教程(二)

程序员余白

Hexo 博客搭建 11月月更

MSE 结合 Dragonwell,让 Java Agent 更好用

阿里巴巴云原生

阿里云 微服务 云原生

管控内部威胁,数据如何安全使用?

极盾科技

数据安全

butterfly美化日记(一)

程序员余白

Hexo butterfly 博客配置 11月月更

网易云信 toB 质量保障体系实践

网易云信

质量保障 PaaS平台

RocketMQ 在同程旅行的落地实践

Apache RocketMQ

消息队列 Apache RocketMQ

文档管理系统平台:实现文档管理现代化

Baklib

Hexo框架+Github 搭建免费静态博客教程(一)

程序员余白

Hexo Github' 博客搭建 11月月更

区块链DAPP开发成本差别如此之大?深圳区块链公司告诉你

W13902449729

dapp dapp开发 区块链开发

无脚本自动化测试

FunTester

云原生时代数据库技术趋势与场景选型

OceanBase 数据库

什么是入侵检测系统?有哪些分类?

wljslmz

网络安全 11月月更 入侵检测 IDS

大数据生态中的 RocketMQ 5.0

Apache RocketMQ

消息队列 Apache RocketMQ

记一次多个Java Agent同时使用的类增强冲突问题及分析

华为云开发者联盟

开发 华为云 企业号十月 PK 榜

深圳区块链DAPP程序开发未来发展简介

W13902449729

dapp开发

大咖分享 | 如何构建 Alluxio 审计日志分析系统

Alluxio

分布式 Alluxio 大数据 开源 数据编排 审计日志

腾讯蓝鲸 API 网关如何借助 APISIX 实现产品升级与业务完善

API7.ai 技术团队

云原生 API网关 APISIX 客户案例

复杂A/B实验如何设计?火山引擎DataTester帮你落地!

字节跳动数据平台

大数据 数据 火山引擎 A/B测试

5款宝藏办公软件,高质量打工人必备!

淋雨

OCR 办公软件 IDM

【kafka思考】最小成本的扩缩容副本设计方案

石臻臻的杂货铺

kafka 11月月更

快速实现无人车远程控制开发——实践类

阿里云AIoT

阿里云 物联网 远程控制

鱼传科技:函数计算,只要用上就会觉得香

阿里巴巴云原生

阿里云 云原生 函数计算

月日均AUM提升40倍!看这家银行如何做好网金客群分层经营?

索信达控股

科技 客户分群 网金客群

华为阅读年度会员4折,万元好礼抢先看

叶落便知秋

最佳实践|用腾讯云AI图像能力实现AI作画

牵着蜗牛去散步

腾讯云 腾讯 AI

用STOMP集成Flex3.0和RabbitMQ_Java_Moxie Zhang_InfoQ精选文章