50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

用 Flex Builder 构建即时聊天应用

  • 2009-09-01
  • 本文字数:1465 字

    阅读完需:约 5 分钟

Activa Live Chat 是一个基于 Adobe Flex 的即时在线聊天应用,它可以让网站的所有者通过即时的基于文本的聊天来轻松地为访问者和客户提供实时在线的支持。它为网站的访问者和聊天人提供了基于 Flex 的 UI 风格,而在后端的聊天服务则是由 PHP 实现。

本文会讲解如何使用 Adobe Flex 和 Adobe Blaze DS 来构建这样一个聊天应用程序。

Flex 通过开源的 BlazeDS 消息服务来支持订阅及发布消息。这个消息服务管理着一些 Flex 客户端可以订阅或发布的目标地址。Flex 提供了 Producer 和 Consumer 这两个组件,让你用来向目标地址发送或订阅消息。如果要订阅消息,你就使用 Consumer 类的 subscribe()方法。当有消息发送到你订阅了的目标地址时,Consumer 上就会触发 message 事件。

使用 BlazeDS 的发布 / 订阅功能是很简单的。下面是一个简单的聊天应用的例子:

复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"                        
        creationComplete="consumer.subscribe()">
        <mx:Script>
            <![CDATA[  
                import mx.messaging.messages.AsyncMessage;  
                import mx.messaging.messages.IMessage;  
                private function send():void  
                {
                    var message:IMessage = new AsyncMessage();  
                    message.body.chatMessage = msg.text; 
                    producer.send(message);  
                    msg.text = "";  
                }
                private function messageHandler(message:IMessage):void  
                {
                    log.text += message.body.chatMessage + "\n";
                }
            ]]>
        </mx:Script>  
        <mx:Producer id="producer" destination="chat"/>
        <mx:Consumer id="consumer" destination="chat"    
            message="messageHandler(event.message)"/> 
        <mx:Panel title="Chat" width="100%" height="100%"> 
            <mx:TextArea id="log" width="100%" height="100%"/> 
            <mx:ControlBar>
                <mx:TextInput id="msg" width="100%" enter="send()"/>
                <mx:Button label="Send" click="send()"/>
            </mx:ControlBar> 
        </mx:Panel> 
    </mx:Application>

消息传递的目的地址是在你的 Flex 应用根下一个叫 messaging-config.xml 中配置的。一个目的地址配置的关键元素是在客户端和服务器交换数据的通道。使用 BlazeDS,消息传递的目的地址通常使用流通道或者轮询通道。

  • 使用流通道,服务器响应会一直保持开放状态,直到通道连接关闭,这样可以让服务器持续向客户端发送变化的数据。HTTP 连接并不是双向的。这意味着一个流 AMF 或者 HTTP 通道实际上需要两个浏览器 HTTP 连接来完成两个方向上的数据发送。一个用于从服务器向客户端发送流响应,另外一个暂态的连接用在当有 数据需要发送到服务器时,从浏览器池中拖拽数据。这个暂态的连接会立即释放回浏览器的连接池中。
  • 如果数据没有立刻准备好(长轮询),就可以通过一个简单的时间间隔或者服务器等待时间来配置轮询通道。无论哪种方式,轮询响应都会完成请求。浏览器 HTTP1.1 连接缺省是持久的,因此浏览器有可能会重复利用已有的 HTTP 连接来发送接下来的轮询请求,这样就能减少轮询带来的网络负载。

请参考 Flex 开发者中心来获取更多关于 Adobe Flex 的入门及深度文章。

2009-09-01 21:007358
用户头像

发布了 127 篇内容, 共 48.6 次阅读, 收获喜欢 5 次。

关注

评论

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

2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。

福大大架构师每日一题

golang 音视频 流媒体 福大大架构师每日一题

登顶Nature 正刊!百度生物计算用AI首次实现mRNA领域重大进展

脑极体

AI 生物

Go常用设计模式(上)

闫同学

三周年连更

Flink运行架构

阿泽🧸

flink 三周年连更

“前端”工匠系列(一):合格的工匠,究竟该搞什么 | 京东云技术团队

京东科技开发者

前端 编码格式 Vue 3 企业号 5 月 PK 榜

FFmpeg从入门到精通-云享读书会总结

DS小龙哥

三周年连更

Guitar Pro2023专业的吉他制谱软件

茶色酒

Guitar Pro8

EasyRecovery2024免费版电脑数据恢复软件

茶色酒

EasyRecovery15

【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件

码界西柚

redis 分布式锁 三周年连更 动手实现

Paragon NTFS2023最新版ntfs磁盘读写工具

茶色酒

Paragon NTFS

瓴羊QUICKBI工具帮助企业处理数据,效率提升数倍!

对不起该用户已成仙‖

Syslog-ng RHEL 的安装和配置

HoneyMoose

IDP中的黄金路径究竟是什么?

SEAL安全

IdP 平台工程 内部开发者平台 企业号 5 月 PK 榜 黄金路径

分布式Mysql

乌龟哥哥

三周年连更

简介一下LoRA模型

IT蜗壳-Tango

三周年连更

最高可达4000万元!浙江台州|台州市“500精英计划”引才政策申报

科兴未来News

致敬青年——开源的生力军

开放原子开源基金会

开放原子开源基金会

cleanmymac x4.13.2中文版mac清理软件

茶色酒

CleanMyMac X

FL Studio 2023中文版水果音乐制作软件

茶色酒

FL Studio 21

FLstudio2024最新版水果编曲软件

茶色酒

FLStudio21

Docker安全中的一些技术工具

穿过生命散发芬芳

Docker 三周年连更

JS中数组随机排序实现(原地算法sort/shuffle算法)

不叫猫先生

JavaScrip 算法、 三周年连更

FL Studio21最新数字音频工作站(DAW)软件

茶色酒

FL Studio21

Shell的基本使用方法

芯动大师

shell脚本编程 Shell命令 三周年连更

Stable Diffusion WebUI汉化

IT蜗壳-Tango

三周年连更

在 Go 中如何使用 Viper 来管理配置

江湖十年

golang 后端 日志

高级滤镜效果:Topaz Photo AI Mac电脑版

真大的脸盆

Mac Mac 软件 图像编辑处理 图像优化工具

Django笔记二十一之使用原生SQL查询数据库

Hunter熊

Python sql django connection

Matlab实现深度学习

袁袁袁袁满

三周年连更

Web前端已死?别带节奏了,说白了就是“卷”

引迈信息

前端 大前端 低代码 java 并发 JNPF

瓴羊Quick BI工具助力企业,数据处理效率翻番!

夏日星河

用Flex Builder构建即时聊天应用_Java_张凯峰_InfoQ精选文章