`
darrenzhu
  • 浏览: 782423 次
  • 性别: 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;
		}
		
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics