首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

red5 一些惯用技巧

2012-07-01 
red5 一些常用技巧1. 配置多个webscope将每一个应用配置到相应的XXX-web.xml 文件中,如下应用red5serv,增

red5 一些常用技巧

1. 配置多个webscope
将每一个应用配置到相应的XXX-web.xml 文件中,如下应用red5serv,增加red5serv-web.xml配置文件
?内容如下:
<bean id="web.context.red5serv" ref="red5.scopeResolver" />
??<property name="clientRegistry" ref="global.clientRegistry" />
??<property name="serviceInvoker" ref="global.serviceInvoker" />
??<property name="mappingStrategy" ref="global.mappingStrategy" />
</bean>
?
<bean id="web.scope.red5serv" init-method="register">
??<property name="server" ref="red5.server" />
??<property name="parent" ref="global.scope" />
??<property name="context" ref="web.context.red5serv" />
??<property name="handler" ref="web.handler.red5serv" />
??<property name="contextPath" value="/red5serv" />
??<property name="virtualHosts" value="*,localhost, localhost:8888, 127.0.0.1:8888" />
</bean>
?
<bean id="web.handler.red5serv" DefaultHandler start " + arg0.getName() );
??arg0.setAttribute("currentscope", arg0.getName() + " ok");
??return super.start(arg0);
?}
}

每个应用启动前会先调用start方法.


3.在相同的scope 中 shareObject
java application handler

public void updateSO( Object[] value)
{
? ?so.beginUpdate();
???? ?so.setAttribute( "test", value );
???? ?so.endUpdate();
}

@Override
public boolean roomStart(IScope room) {
??log.info("roomStart ");

??
??if (!super.roomStart(room))
?????????? return false;
????
??createSharedObject( room, "test", true );
??? ?so = getSharedObject( room, "test" );
???? so.addSharedObjectListener(new SampleSharedObjectListener());
???? so.registerServiceHandler(new MySharedObjectHandler());
?
??log.info("roomStart test so");
??return true;
??
??
}

flex

public function onConnection():void{
????
???Logger.info("连接服务器成功,开始测试服务器方法");
???
????so = SharedObject.getRemote( "test", _nc.uri, true );
????so.client = this;
????so.connect( _nc );
????so.addEventListener( SyncEvent.SYNC, alertSO );
????
}
???
public function alertSO( e:SyncEvent = null ):void
{
?Alert.show( so.data.test.toString() );
}
???
public function sendSO( ):void
{
?_nc.call( "updateSO", null, ti.text );
}

<mx:TextInput id="ti" />
?
?<mx:Button label="send" click="sendSO()" x = "250"/>
?
?<mx:Button label="Aler Shared Object" click="alertSO()" x="500"/>


4.在jsp中直接访问red5服务器中的方法

<%
?????? String url = "http://localhost:8888/red5serv/gateway";
?????? RemotingClient client = new RemotingClient(url);
?????? Object[] args = new Object[]{"Hello world!"};
????
?????? client.invokeMethod(".getServerM", args, new IRemotingCallback(){
???? ?? public void errorReceived(RemotingClient client, String method,
?????????????????? Object[] params, Throwable error) {
???? ??? error.printStackTrace();?
????
???? ? }
??? public void resultReceived(RemotingClient client, String method,
?????????????????????? Object[] params, Object result) {
????? System.out.print(result.toString());
??? }
?
??? });
%>

热点排行