`
darrenzhu
  • 浏览: 806992 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自动检测http和https的RemoteObject

阅读更多
package 
{
	import util.BrowserUtil;
	import mx.controls.Alert;
	import mx.messaging.Channel;
	import mx.messaging.ChannelSet;
	import mx.messaging.channels.AMFChannel;
	import mx.messaging.channels.SecureAMFChannel;
	import mx.rpc.remoting.mxml.RemoteObject;
	
	public class RemoteObjectWrapper
	{
		private var _remote:RemoteObject;
		private var _destination:String;
		private var _url:String;
		private var _useSecureAMFChannel:Boolean=false;
		
		public function RemoteObjectWrapper(destination:String,useSecureAMFChannel:Boolean=false,url:String=null)
		{
			this._destination=destination;
			this._useSecureAMFChannel=useSecureAMFChannel;
			this._url=url;
		}
		
		public function get newInstance():RemoteObject{
			this._remote=new RemoteObject(_destination);
			_remote.channelSet=new ChannelSet();
			var channel:Channel=newChannel();
			_remote.channelSet.channels=[channel];
			_remote.requestTimeout=7200;
			return _remote;
		}
		
		private function newChannel():Channel{
			var channel:Channel;
			if(this._url==null || this._url.length==0){
				var browserUtil:BrowserUtil=BrowserUtil.getInstance();
				if(this._useSecureAMFChannel || browserUtil.isHttpsURL){
					channel=new SecureAMFChannel();
					channel.url="/"+browserUtil.contextRoot+"/messagebroker/amfsecure";
				}else{
					channel=new AMFChannel();
					channel.url="/"+browserUtil.contextRoot+"/messagebroker/amf";
				}
			}else{
				if(this._useSecureAMFChannel || this._url.indexOf("https")>-1 || this._url.indexOf("amfsecure")>-1){
					channel=new SecureAMFChannel();
					channel.url=_url;
				}else if(this._url.indexOf("http")>-1 || this._url.indexOf("amf")>-1){
					channel=new AMFChannel();
					channel.url=_url;
				}
			}
			return channel;
		}
		
	}
}
分享到:
评论

相关推荐

    FLEX和使用RemoteObject和后台通信

    `RemoteObject` 可以方便地将Flex应用程序中的ActionScript方法映射到服务器上的业务逻辑方法,从而实现数据的传递和交换。以下将详细讲解如何使用`RemoteObject`以及它的工作原理。 1. **配置Flex项目** 在Flex...

    red5中使用remoteObject

    RemoteObject是Adobe Flex框架中的一个特性,允许在客户端(如Flash Player)和服务器端之间进行透明的RPC(远程过程调用)通信。 在Flex应用中,RemoteObject是客户端与服务器交互的关键组件,它提供了与服务器...

    flex remoteObject封装后和java通信

    它通过HTTP或HTTPS协议与服务器进行通信,并且支持多种传输协议,如HTTP、RTMP和WebSockets。RemoteObject能够调用服务器端的方法,将结果返回到客户端,实现数据的双向传输。 ### 2. BlazeDS简介 BlazeDS是Adobe...

    flex+java+remoteObject

    在BlazeDS的配置文件中,你需要添加相应的channel设置,指定使用HTTP或HTTPS协议,以及AMF协议。然后,配置服务暴露,如: ```xml <destinationId>javaService <class>flex.messaging.adapters.java.Java...

    flex中actionscript动态调用remoteobject类

    ### Flex中ActionScript动态调用RemoteObject类 在Flex中,使用ActionScript动态调用RemoteObject类是一种常见的实现客户端与服务器端交互的方式。通过这种方式,开发者可以在客户端灵活地调用服务器端的服务,并...

    flex4 remoteobject 多文件上传的例子

    RemoteObject通过HTTP、AMF(Action Message Format)等协议,将ActionScript对象转换为可被服务器理解的数据格式,然后发送到服务器。服务器处理完请求后,再将结果转换回ActionScript对象并返回给客户端。在Flex中...

    Flex的remoteObject例子

    RemoteObject会自动处理序列化和反序列化过程。 ```actionscript remoteObject.saveUser(userObject, saveUserResultHandler, saveUserFaultHandler); ``` 6. **处理结果和错误**:你需要提供结果处理函数和错误...

    remoteObject-java简单CURD例子.rar

    这个"remoteObject-java简单CURD例子.rar"压缩包提供了一个示例,演示了如何使用Java实现远程对象(Remote Object)进行基本的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,也就是常说的CURD...

    flex访问remoteObject实例

    3. **创建RemoteObject实例**:在ActionScript代码中,我们需要创建一个RemoteObject实例,并指定其连接的后端服务名和方法。例如: ```as3 var remoteObject:RemoteObject = new RemoteObject(); remoteObject....

    flex使用 RemoteObject 与java进行json格式的数据交互

    本篇文章将深入探讨如何使用`RemoteObject`与Java进行JSON格式的数据交换,以便更好地理解和应用这一技术。 首先,`RemoteObject`是Flex框架中的一个关键组件,它允许Flex应用通过AMF(Action Message Format)协议...

    flex4使用RemoteObject学习

    当Flex客户端通过RemoteObject调用`sayHello`方法并将User对象作为参数传递时,AMF会自动将ActionScript对象序列化为服务器可识别的格式,然后服务器执行相应的方法,最后将结果返回给客户端。客户端接收到结果后,...

    flex与java的通信 Blazeds remoteObject

    AMF协议支持自动类型转换,使得Flex和Java之间可以直接传递复杂的数据类型,如自定义对象。但需要注意的是,Flex和Java的数据模型必须保持一致,否则会导致转换失败。 6. **错误处理和事件监听** 上述代码中的`...

    基于RemoteObject编写的BlazeDS例子

    1、修改apache-tomcat-6.0.14\bin\catalina.bat文件中的JAVA_HOME的值,指向你所装的jdk的目录;...3、输入地址:http://localhost:8080/BlazeDsServer/BlazeDsExample.html 查看效果! 4、包含源代码。

    Flex BlaseDS remoteObject 例子(这个是错的,大家不要下了,SORRY)

    一个用Flex调用JAVA方法的例子ffffffff

    flex中RemoteObject与java的通信

    ### Flex中RemoteObject与Java的通信 在Flex开发过程中,实现客户端与服务器端的数据交互是一项基本而又关键的任务。其中,`RemoteObject`是Adobe Flex框架提供的一个强大的组件,它允许Flex应用程序通过AMF...

    flex remoteobject调用java服务

    eclipse3.7 + flash builder 4.5插件 + tomcat6.X调试通过,一个flex remoteobject简单例子(BlazeDS)。实际导入后指定flex server--java settings--blazeds.war的路径

    flex3(remoteobject+datagrid+.....)+java+oracle源代码

    总结来说,这个项目结合了Flex3的UI展示能力,通过RemoteObject组件实现了与Java服务器的AMF通信,利用Datagrid组件展示了数据,并在后端使用Java和Oracle数据库进行数据处理和存储。通过这种方式,开发者可以构建出...

Global site tag (gtag.js) - Google Analytics