Flex数据交互方法- httpservice, webservice, RemoteObject, socket.

写在前面:

使用SOAP Web Service同Flex交互有很多好处,但是它很慢, 使用定制化XML好一点,却不标准化.

那么最好的ASP.Net 和flex交互方法是什么?

1. HTTPService 实际上应该叫做XML via HTTPService, 就是用get和post方式进行数据传输,同平常的web form提交大致一 样.好处就是很简单,通用性高. 不管你用asp,jsp, 还是XXP, 任何可以生成标准XML的程序都可以和你的Flex程序进行交互. 处理大量数据时, 速度慢, 下面是个简单的例子:

登录 http://www.helloria.com/showtopic.aspx?topicid=37&forumpage=1&page=1#53

2. WebService 通用的叫做SOAP, 用datatable返回数据, 没有内建的Paging功能.不直接返回dataset. 并且大型数据交互速度慢.但,它是比较通用的接口, 大多服务器通信都支持, 不过服务器端实现起来比较复杂.

3. Remoting 基于AMF的数据交互, 速度以及性能是最好的. 支持dataset和datatable, 以及OR mapping工具. Fast, reliable and secure, 需要一个Flex Remoting Gateway来做数据de/seralization.

优点:

1).传输数据类型比较丰富。

2).可以支持AMF0,AMF3两种数据封装类型,AMF3是Flash Player 9或更高级才能支持,有了AMF3,可以直接传送二进制文件流数据。

3).传输效率相对比较高。

4).对各种后台的支持也比较好。

FDS(LCDS) - 是Adobe主推的FlashRemoting服务端,功能强大(当然也支持AMF0,AMF3格式, java和net平台都支持),质量也不错,可惜这个是需要银子的。

Blazeds - 是Adobe另外一个开源的FlashRemoting项目,基于Java平台的,支持AMF0,AMF3格式

Amfphp - 一种基于PHP的RPC工具,支持FlashRemoting中AMF0和AMF3两种格式,开源项目。

Openamf - 一种基于Java的FlashRemoting开源项目,目前只支持AMF0格式。

GDS(Granite Data Services) - 也是一个基于Java平台的FlashRemoting项目,支持AMF3的。

WebORB - 一个支持.net,java,php,ruby等开发平台的FlashRemoting项目,也支持AMF0和AMF3。

FluorineFx - 一个支持.net开发平台的FlashRemoting开源项目, AMF0, AMF3 ,RTMP, RTMPT 。

缺点:

1).需要后台服务端装相应版本的Flash Remoting模块才可以使用。

2).如果使用虚拟主机的话配置起来比较麻烦。

4. Socket: 没什么说的,基于socket通讯的,这也是flash和传统web开发中,通讯方式最不同的地方,socket可以建立持久连接,因此可以用来做网游,多人聊天,视频等应用。

什么是AMF? AMF0, AMF3 做Flex RIA交互的都知道有3种数据交互方式, HttpService, WebService 和remoting.

大家又公认Remoting是最有效率的方法!

那么Remoting为什么会更有效率呢, 这就涉及到数据封装格式.

AMF是Adobe独家开发的数据封装格式, AMF(Action Message Format) binary format. Remoting传输这种压缩的数据格式, 而且传输的的数据还包括ByteArray等多种形态( 參考AMF3 Specification).

Flash可以直接访问, 并且由于它是基于二进制的数据传输,所以相对于xml SOAP、json、webService等基于字符串的数据格式,有数据体积小和效率高的特点。

AMF目前有AMF0和AMF3两种格式,AMF随着ActionScript3的问世,直接从AMF0升级到AMF3.  Flash8以前版本只支持AMF0,flash9支持两种格式。AMF3比AMF0效率更高。

flex数据交互方式 转的更多相关文章

  1. Flex数据交互之Remoting

    一 前言 Flex数据交互常用的有三种方式:WebService.HttpService以及Remoting. WebService方式已在这篇文章中给出,这篇文章主要讲解以Remoting方式进行数 ...

  2. Flex数据交互之WebService

    In this article you will learn how to call webservices hosted on asp.net applications from flex. Fir ...

  3. Flex数据交互之Remoting[转]

    Flex数据交互之Remoting 一 前言 Flex数据交互常用的有三种方式:WebService.HttpService以及Remoting. WebService方式已在这篇文章中给出,这篇文章 ...

  4. 面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式

    上一篇这里描写叙述了一个关于差异数据在开发过程中的一个长处,这里来演示另外一个特点:单机开发之无缝切换到C/S模式 一般C/S模式都面临一个问题: 就是开发过程中的调试难题,由于涉及到client和服 ...

  5. json与jsonp应用及其他ajax数据交互方式

    1.json是数据交换格式,使用实例如下: $.getJSON( '/manage/asset/asset_delByIds.action', { 'ids':id }, function(data) ...

  6. asp.net中webservice与android的json数据交互方式设置

    一 .服务器端设置 1.修改web.config 在web.config里面的的system.Web节点添加 <webServices> <protocols> <add ...

  7. WebService的web客户端同步、异步、多线程向服务端传入参数的数据交互方式

    接着上一章的内容,在上一章中我们知道了如何.net平台下去建立一个WebService,以及同步调用.异步调用.开线程异步调用三种客户端从服务端获取数据的方式,在本章了所要讲的,是如何将客户端的数据, ...

  8. asp.net 前后台数据交互方式(转)

    https://blog.csdn.net/luckyrass/article/details/38758007 一.前台直接输出后台传递的数据 后台代码: // .aspx.cs public st ...

  9. 基于Ajax技术的前后端Json数据交互方式实现

    前言 使用浏览器访问网站是日常生活中必不可少的一件事情,当我们在浏览器地址栏中输入网址后会看到网站的内容,那么这个过程中发生了什么?下面简单介绍下浏览器访问网站过程. 第一步:浏览器向DNS服务器发起 ...

随机推荐

  1. B+树|MYSQL索引使用原则

    MySQL一直了解得都不多,之前写sql准备提交生产环境之前的时候,老员工帮我检查了下sql,让修改了一下存储引擎,当时我使用的是Myisam,后面改成InnoDB了.为什么要改成这样,之前都没有听过 ...

  2. 对"一维最大子数组和"问题的思考(homework-01)

    一维最大子数组和问题,即给定一个数组,在它所有的连续子数组的和中,求最大的那个和.“最大子数组和”是一个很好的IT面试考题,在<编程之美>一书中同时阐述了一维数组和二维数组的讨论.本篇博客 ...

  3. Web Service学习之九:Restful WebService

    1.Rest 2.Rest webService 3.SpringMVC Restful 参考: http://spring.io/guides/gs/rest-service/ http://www ...

  4. Xcode 的正确打开方式——Debugging

    程序员日常开发中有大量时间都会花费在 debug 上,从事 iOS 开发不可避免地需要使用 Xcode.这篇博客就主要介绍了 Xcode 中几种能够大幅提升代码调试效率的方式. “If debuggi ...

  5. DB2 VALUES用法详解

    都知道Oracle有一个虚表(dual),我们可以用select sysdate from dual获取寄存器中的值.在DB2中,可以通过SYSIBM.SYSDUMMY1.SYSIBM.DUAL获取寄 ...

  6. ocp 1Z0-051 106-140题解析

    106. Examine the data inthe LIST_PRICE and MIN_PRICE columns of the PRODUCTS table: LIST_PRICE MIN_P ...

  7. POJ1189钉子和小球(DP)

    对钉子DP,如果钉子存在DP[i+1][j]+=DP[i][j]; DP[i+1][j+1]+=DP[i][j]; 如果不存在DP[i+2][j+1]+=4*DP[i][j]; 见代码:(有一个比较坑 ...

  8. CodeForces 706A Beru-taxi (数学计算,水题)

    题意:给定一个固定位置,和 n 个点及移动速度,问你这些点最快到固定点的时间. 析:一个一个的算距离,然后算时间. 代码如下: #pragma comment(linker, "/STACK ...

  9. [转]sql server 数据库日期格式化函数

    转至:http://www.cnblogs.com/hantianwei/archive/2009/12/03/1616148.html 0   或   100   (*)     默认值   mon ...

  10. SessionFactory、HibernateTemplate、HibernateDaoSupport之间的关系说明

    在接触HibernateTemplate之前,我们知道,在对数据库进行CRUD操作之前,需要开启session.transaction等等.在hibernate学习过程中,我们知道了,得到sessio ...