欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自动检测http和https的RemoteObject

程序员文章站 2022-06-11 16:43:06
...
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;
		}
		
	}
}