Flex的数据推送问题解决方案
在本文中,我们将深入探讨如何解决Flex数据推送问题,特别是在实时行情应用中,如股票、外汇和期货等。传统的做法是客户端定期向服务器发起请求获取最新数据,但这种方法效率较低且浪费资源。相反,我们可以利用BlazeDS中的StreamingAMFChannel技术,实现服务器向客户端推送数据,提高实时性和效率。 BlazeDS是一个开源的Java服务器端组件,能够为Flex和Ajax应用提供数据集成。它支持多种通信协议,包括HTTP、RTMP和WebSocket,其中StreamingAMFChannel通道特别适合进行实时数据推送。 ### StreamingAMFChannel介绍 StreamingAMFChannel是一种基于HTTP长轮询的通道,允许服务器在数据变化时立即推送到客户端,而不是等待客户端下一次请求。这种方式减少了延迟,提高了用户体验,特别适合需要实时更新的应用场景。 ### 环境配置 为了实现Flex数据推送,我们需要以下软件: 1. Eclipse WTP (Web Tools Platform) - 用于开发Flex项目。 2. Flex SDK - 用于构建Flex应用程序。 3. BlazeDS - 提供服务器端与Flex客户端的通信服务。 在本示例中,我们使用的是BlazeDS的特定版本blazeds_bin_3-0-0-544,只需下载并部署blazeds.war文件到应用服务器(如Tomcat)。 ### 实现步骤 1. **创建Flex项目**:在Eclipse的Flex Development视图下,新建一个Flex Project,例如命名为`flex-blazeds`。在向导的最后一步,可以点击"Finish"完成创建。 2. **配置项目属性**:打开项目的属性设置,将Flex服务器配置改为BlazeDS,确保服务器地址和端口正确。 3. **创建Java类**:在Java开发视图中,创建一个名为`cn.bestwiz.design.tc`的包,并在其中定义一个名为`Tick`的Java类。这个类用于封装实时行情数据,包括买卖价格、中间价、时间戳以及序列号等字段。 ```java package cn.bestwiz.design.tc; import java.math.BigDecimal; import java.util.Date; public class Tick { // 类属性及getter、setter方法... } ``` 4. **配置BlazeDS**:在Tomcat服务器上部署blazeds.war,然后在Flex项目中配置 BlazeDS 配置文件services-config.xml,启用StreamingAMFChannel并指定相关的Java类和服务。 5. **编写Flex代码**:在Flex客户端,创建一个服务调用,连接到BlazeDS并监听StreamingAMFChannel。当服务器端有新的`Tick`对象发送过来时,客户端会接收到这些实时数据。 6. **服务器端处理**:在服务器端,你需要编写逻辑来检测数据变化并使用StreamingAMFChannel将更新推送到所有订阅的客户端。 通过以上步骤,你将成功设置一个基本的Flex实时数据推送系统。然而,实际应用可能需要处理更多细节,比如错误处理、连接管理、负载均衡以及性能优化等。在部署生产环境中,还要考虑安全性,防止未授权访问和攻击。 总结来说,通过BlazeDS的StreamingAMFChannel,我们可以实现Flex客户端与服务器之间的高效实时通信,解决数据推送的问题。这种方法大大提升了用户体验,尤其适用于需要频繁实时更新数据的金融应用。
- y188108782262012-09-18讲解的是eclipse(wtp)+ flex3 build 的软件环境,blazeds采用的是blazeds_bin_3-0-0-544,不适合我的程序,不过还是谢谢楼主,讲的挺详细的
- vipxiao2011-11-06正在学些这个,不过还是有些地方不太适合,谢谢分享
- ustcread2014-02-08好东西,很多方面可以借鉴,多谢
- 粉丝: 12
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助