FlashCom 连接器

本连接器代码是可支持flashcom多端口(1935,443,80),多协议(rtmp,rtmps,rtmpt)扫描.

以下是connector.as代码片段:

//======================================;

//name:connector.as

//auther:kinglong

//email:kinglong@gmail.com

//date:2005-06-29

//desc:fcs连接器;

//=======================================;

importmx.events.eventdispatcher;

//=======================================;

classcom.klstudio.fcs.connectorextendsobject{

//======================================;

privatevardispatchevent:function;

publicvaraddeventlistener:function;

publicvarremoveeventlistener:function;

publicvartarget:object;

publicvarindex:number;

//======================================;

privatevar__connectlistarray:array;

privatevar__host_name:string;

privatevar__app_name:string;

privatevar__connected:boolean;

privatevar__connect_list_point:number;

privatevar__connection_num:number;

privatevar__connection_max_num:number;

privatevar__connection:netconnection;

privatevar__connection_params:object;

//=======================================;

privatevar__mar_next_connect:number;

privatevar__mar_all_failed_connect:number;

//=======================================;

functionconnector(host:string,app:string){

if(arguments.length>1){

this.__host_name=host;

this.__app_name=app;

}

this.initconnector();

}

//========================================;

//初始化对象;

//========================================;

privatefunctioninitconnector():void{

//=======================================;

eventdispatcher.initialize(this);

//=======================================;

this.__connected=false;

this.__connection_num=0;

this.__connection_max_num=3;

this.__connection=null;

this.__connection_params=null;

//=======================================;

this.__connectlistarray=newarray();

this.__connectlistarray.push({protocol:"rtmp",port:1935});

this.__connectlistarray.push({protocol:"rtmp",port:443});

this.__connectlistarray.push({protocol:"rtmpt",port:80});

this.__connectlistarray.push({protocol:"rtmps",port:443});

//=======================================;

}

//========================================;

//启动连接表;

//========================================;

privatefunctiondoactualconnect():void{

this.removealltimeout();

this.__connection_num++;

if(this.__connection_num>this.__connection_max_num){

this.mytrace("总共尝试"+this.__connection_max_num+"次都失败!");

this.dispatchevent({type:"failed",data:"服务器连接失败!"});

return;

}

this.__connect_list_point=0;

vari:number;

for(i=0;i<this.__connectlistarray.length;i++){

this["temp_nc_"+i]=newnetconnection();

this["temp_nc_"+i].index=i;

this["temp_nc_"+i].target=this;

this["temp_nc_"+i].onstatus=this.dostatus;

}

varconnection_uri:string=this.__connectlistarray[this.__connect_list_point].protocol+"://"+this.__host_name+":"+this.__connectlistarray[this.__connect_list_point].port+"/"+this.__app_name;

this.mytrace("[尝试"+this.__connection_num+"/"+this.__connection_max_num+"]连接到"+(this.__connect_list_point+1)+"/"+this.__connectlistarray.length+":"+connection_uri);

this.dispatchevent({type:"connect",data:this.__connectlistarray[this.__connect_list_point]});

this["temp_nc_"+this.__connect_list_point].connect(connection_uri,this.__connection_params);

this.__mar_next_connect=setinterval(this,"nextconnect",3000);

}

//========================================;

//下一个连接;

//==============

  • FlashCom 连接器已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计