通过这些方法完成与服务器的通信非常方便简单,但其缺点是通信数据量小。如果我们想要传输大量的数据或者实现不同对象的序列化传输,它们就不能满足我们的需求。我们需要找到另一种通信协议,另一种高效的传输协议来代替SOAP协议,那就是AMF(ActionScript Message Format)协议。开源项目FluorineFx是一个AMF协议通信网关,专门用于。NET平台和Flex。我们可以交流。NET方便地通过FluorineFx。flufefx官方提供安装包和在线文档的下载,可以帮助我们有效利用flufefx进行开发。fluorinefx官网:http://www.fluorinefx.com/FluroineFx下载地址:http://www.fluorinefx.com/download.html fluorinefx在线文档:http://www.fluorinefx.com/docs/fluorine/index.htmlOK,我们来看看的配置。NET和Flex使用Fluroinefx通信。开发环境的选择如下:net : Microsoft visual studio 2008。net framework 3.5 flex : adobe flex builder CS3 flex SDK 3.2 fluo ine FX : fluo ine FX v 1 . 0 . 0 . 15(点。点击下载)1。的发展。NET server通过Microsoft Visual Studio 2008创建了一个解决方案,并添加了FluroineFx服务器库,如下图所示:。
成功添加了FluorineFx服务库后,我们会发现项目模板会自动为我们创建一个Sample类和一个Echo方法。以下内容:1 namespace flexdotnet . servicelibrary 2 { 3///summary 4///fluoresampleservice . 5///summary 6[远程处理服务(' fluoresampleservice ')]。7 public class sample 8 { 9 public sample()} 10 { 11 } 1213 publicstringcho(string text)14 { 15 return ' gateway echo : '文本;16}17}18}然后将FluorineFx网站添加到解决方案中。添加成功后,网站会自动引用FluorineFx服务库的dll。如下所示:
此时,我们可以简单地测试。已成功创建. NET服务器。您可以在浏览器中的FluroineFx网站中查看Console.aspx,也可以将网站设置为启动项目,将Console.aspx设置为启动页面来运行网站。程序将运行到Fluroinefx的控制台。展开左侧项目的服务节点,您将看到由上述模板创建的类和方法。点击右侧的方法节点进行简单测试,如下图所示:。
好的,服务器端。NET已经在这里开发出来了。在这里,我们需要记住几点。在接下来的Flex开发中,我们需要根据这些参数进行配置。那个。F: 演示 FlexDotNet webf3360的虚拟目录。NET网站:/webflufefx的。NET网站URL:http://localhost 33602836/web接受Flex客户端请求的URL:http://localhost 33602836/web/gateway . aspx有了这些东西,配置Flex就简单了。首先,创建一个Flex项目,并将项目路径指向之前建立的Flex网站的根路径:。
如上所示,将应用程序类型设置为: web应用程序,将应用程序服务器类型设置为:ASP.NET,然后选择“下一步”。进入下一个项目创建向导界面,将Server设置为:‘使用互联网信息服务(IIS)’,web应用根也指向FluorineFx网站的根路径,Web Appliation URL设置为我们上面得到的路径,这样就OK了。详见下图:。
按照上述步骤进行配置后,点击“验证配置”。如果验证的结果为:web应用程序根和URL有效,则表示配置正确,可以直接点击“下一步”,直到创建项目。Flex项目创建后,我们可以与。NET通过FluorineFx通过一些相应的配置。开发项目属性设置面板,设置其Flex编译器,如下图所示(-服务配置也可以设置为相对路径):。
将Flex Server设置为以下配置,并单击“验证位置”以验证设置的正确性:。
最后设置输出路径,完成Flex: 的配置。
到这里弯曲端的配置就全部完成,下面我们通过氟化铀库模板为我们生成的样品为例来测试下该环境是否可以通过,在弯曲的中常用的绑定方式文件下通过mx:RemoteObject标签来访问远程对象,详细如下:1mx :远程objectid=' service '目的地=' fluor ' 2来源=' FlexDotNet .服务图书馆。示例' 3m x :方法名称=' Echo '结果='对结果(事件)' 4/MX :方法5/MX :远程对象这里需要注意的是目的地需要设置为与remoting-config.xml中的目的地的编号一致,来源则配置为远程对象的全路径(名称空间类),通过MX :方法标签配置远程对象下的方法并设置其成功调用后的结果处理函数,下面便可通过编号去调用远程方法了1mx:Script2![CData[3导入MX。RPC。事件。结果事件;4 internalfuncon click(): void 5 { 6 }服务.echo(txtinput。文本);7 } 89 internalfuncnresult(evt :结果事件): void 10 { 11 xtresult。text=evt。结果。tostring();12}13]]14/mx:Script下面是完整的弯曲客户端中常用的绑定方式的代码定义
完整的示例代码1?xmlversion='1.0 '编码='utf-8 '?2mx : applicationxmlns : MX=' http://www .土坯房。com/2006/mxml ' layout=' absolute ' 3m x : remote objectid=' service ' destination=' fluoro ' 4 source=' FlexDotNet .服务图书馆。示例' 5mx 3360方法名称=' Echo '结果='对结果(事件)' 6/MX :方法7/MX 3360远程对象89m x 3360脚本10![CData[11导入MX。RPC。事件。结果事件;12内部功能点击():无效13 { 14维修.echo(txtinput。文本);15 } 1617 internalfuncnresult(evt :结果事件): void 18 { 19 txtreasult。text=evt。结果。tostring();20 } 21]]22/MX :脚本2324 MX 3360面板x=' 53 ' y=' 52 '宽度='250 '高度='200 '布局='绝对标题='测试flufefx ' font size=' 12 ' 25mx : textinputx=' 35 ' y=' 21 ' id=' txtInput '/26mx : buttonx=' 35 ' y=' 63 ' label='确定font weight=' normal ' click=' onClick()'/27Mx 3360 lablex=' 35 ' y=' 95 ' text='结果:'/28mx 3360 extinputx=' 35 ' y=' 123 ' width=' 160 ' id=' txtResult '/29/MX : panel 30/MX :应用程序31本文示例截图