red5小记

来源:互联网 发布:字体秀秀软件 编辑:程序博客网 时间:2024/05/02 05:04
IConnection
是连接的意思 并且有getClient方法来获取客服端
[连接对象。每个连接都有一个关联的客服端和域。连接可能是持续型,轮询型,或者短暂型。建立此接口的目的,是为了给后面不容的子类,如RTMPConnection,RemotingConnection,AJAXConnection,HttpConnection等,提供基础通用的方法.]
IScope
每个应用至少都要有一个域,用来搭建处理器和环境和服务器之间的连接。域可以用来构成树形结构,所有客服端都可以作为其节点共享域内的对象(比如流和数据). 你可以把域想像成房间或者实例。那么程序中的这个接口应该是指这个应用的域了,所有使用此功能的客服端都会包含到它的域中。
IServiceCapableConnection
从程序中看应该是获取有效连接。代码中线获取到连接实例,然后判断是不是有效的链接并强制类型转换,之后调取客服端相应函数。
Red5
从程序中看起来应该是指服务器端
IClient
就是指某个客服端。不过这个客服端只是有客服端的属性,并不通过它调用方法。
[客服端对象代表某单一客服端。一个客服端可以和同一主机下不同的域分别建立连接。于是从某些地方来看,客服端对象和httpsession很相像。可以使用IClientRegistry.newClient(Object[])方法来创建IClient对象]
ApplicationAdapter
此类是所有应用的基础。它提供了使用共享对象和流的方法,以及连接和排序的服务。ApplicationAdapter是应用层级的IScope。若要处理流进程,请实现IStreamAwareScopeHandler接口中的相应处理方法。ApplicationAdapter还提供了有效的事件处理机制,来进行截取流,确认用户等操作。同时,其子类中引入的方法均可在客服端通过NetConnection调取。FMS中必须在服务端维护客服端对象,与之相较 red5为您的远程请求提供了更加方便快捷的操作方法。
----------------------------------
red5里面,每个应用对应一域(scope) 所有的客服端(client)通过连接(connection)连接到域当中(还有复合域).所以说一个域基本上就对应一个java主程序,所有的配置文件均指向此程序。对于单一域 每个连接对应一个客服端,而每个客服端对应一个id,简单的应用,操作就针对一个id和一个连接进行。
ApplicationAdapter是所有应用的基础,运行时候里面包含几个事件处理:
public boolean appStart(IScope app)此应用开始的时候触发,app为此域
public boolean appConnect(IConnection conn,Object[] params)客服端连接到域的时候触发,也就是nc.connect的时候触发,conn为当前连接 后面为参数
public void appDisconnect(IConnection conn) 客服端断开时触发,conn为客服端
public boolean appJoin(IClient client,IScope app) 连接加入时候触发的函数
使用as3连接服务器端得方法是nc.call("方法名",响应器,变量),如果有返回值则会传递到相应器的正确函数中,没有返回值依然会调用正确函数,只是没有传参。服务器回调as3函数时,先判断连接是否正常,然后用invoke("方法名",参数)方法调用;as3这边,nc是首选接收回调方法的,但是as3中,直接用nc.callBackMethod=function(){}的方法会报错,因而通常用nc.client属性来定义回调函数所在的位置。我们会这样nc.client = this; public function callBackMethod(ss:Object){}便可以了.