在red5中,服务端Application类需要实现IApplication接口,默认的做法是继承ApplicationAdapter,
ApplicationAdapter实现了很多接口,它提供一些典型的代码,使我们只需要重写关注的方法,
客户端 -> 服务端调用
客户端由NetConnection的实例发起调用,定义如下:
public function call(command:String, responder:Responder, ... arguments):void
command为方法名称,在Red5中对应Application类中的一个方法名;
Responder为响应对象,它包含一个成功的回调函数,和一个可选的失败回调函数;
arguments为可选的方法参数;
服务端 -> 客户端调用
服务端由IServiceCapableConnection的实例发起调用,定义如下:
void invoke(String method, Object[] params); // 注:此方法有多个重载版本。
method为客户端Application类中定义的方法名;
params为可选的方法参数;
调用示例(向连接同一Scope的客户端发起回调):
IConnection current = Red5.getConnectionLocal();
Iterator<IConnection> it = current.getScope().getConnections();
while (it.hasNext()) {
IConnection conn = it.next();
if (conn.equals(current)) {
continue;
}
if (conn instanceof IServiceCapableConnection) {
((IServiceCapableConnection) conn).invoke(method, params, this);
}
}