`
xzc520
  • 浏览: 14933 次
  • 来自: 杭州
社区版块
存档分类
最新评论

red5 一些常用技巧

    博客分类:
  • red5
 
阅读更多

1. 配置多个webscope
将每一个应用配置到相应的XXX-web.xml 文件中,如下应用red5serv,增加red5serv-web.xml配置文件
 内容如下:
<bean id="web.context.red5serv" class="org.red5.server.Context">
  <property name="scopeResolver" 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" class="org.red5.server.WebScope" 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" class="red5.handler.MainHandler"></bean>


2.利用default scope共享数据

defaultContext.xml  配置文件中的Handler部分改成下面

<bean id="global.handler" class="red5.handler.DefaultHandler"/>

public class DefaultHandler extends CoreHandler {
 @Override
 public boolean start(IScope arg0) {
  if(firststart==0){
   arg0.getContext().getGlobalScope().setAttribute("default.scope", "defaultscope");
   
   log.info("init global");
   
  }
  firststart++;
  log.info(" 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());
    }
 
    });
%>

分享到:
评论

相关推荐

    RED HAT LINUX 6大全

    12.7 解决问题的一些技巧 233 12.8 小结 233 第13章 网络文件系统 235 13.1 NFS安装 235 13.2 启动和停止NFS守护程序 236 13.3 NFS状态 236 13.4 配置NFS服务器和客户 236 13.4.1 建立/etc/exports文件 237 13.4.2 ...

    Python入门教程5. 字典基本操作【定义、运算、常用函数】 <font color=red>原创</font>

    主要介绍了Python字典基本操作,包括字典的基本定义、运算与常用函数相关使用技巧,代码注释中备有详尽说明,便于理解,需要的朋友可以参考下

    Python入门教程3. 列表基本操作【定义、运算、常用函数】 <font color=red>原创</font>

    主要介绍了Python列表基本操作,结合实例形式总结分析了Python针对列表的基本定义、判断、运算及各种常用函数与相关使用技巧,需要的朋友可以参考下

    php常用字符串输出方法分析(echo,print,printf及sprintf) <font color=red>原创</font>

    主要介绍了php常用字符串输出方法,结合实例形式分析了echo、print、printf及sprintf输出字符串的具体用法与相关使用技巧,需要的朋友可以参考下

    入门学习Linux常用必会60个命令实例详解doc/txt

    不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。 umount 1.作用 umount命令的作用是卸载一个文件系统,它的使用权限是超级...

    CMD命令行高级教程

    第一节 常用批处理内部命令简介 1、REM 和 :: 2、ECHO 和 @ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和 : 9、FIND 10、START 11、assoc 和 ftype 12、pushd 和 popd 13、CALL 14、...

    PHP字符串中插入子字符串方法总结 <font color=red>原创</font>

    主要介绍了PHP字符串中插入子字符串方法,对比分析了字符串遍历,substr方法截取与组合,以及直接使用substr_replace函数进行子字符串的插入三种不同的实现方法,涉及php字符串操作的常用技巧,需要的朋友可以参考下

    企业级Linux服务攻略

    8.3.6 常用实例及技巧分析 8.3.7 使用日志监控iptables 8.4 NAT(网络地址转换) 8.4.1 iptables实现NAT 8.4.2 配置SNAT 8.4.3 配置DNAT 8.4.4 MASQUERADE 8.4.5 连接跟踪 8.5 企业实战与应用 8.5.1 企业环境及...

    linux管理员指南

    附录B列出Linux操作系统中常用的一些软件的情况,这将使你能够把Linux作为你最基本的桌面操作系统。这本书的第一稿是使用StarOffice 5.0 for Linux软件编写的,这个软件最初是由德国的StarDivision公司发售的。Sun ...

    华为编程开发规范与案例

    指针的使用具有很强的技巧性和灵活性,但同时也带来了很大的危险性。在XXX的代码中有如下一端对指针的灵活使用: ... ... _UC *puc_card_config_tab; ... ... Get_Config_Table( AMP_CPM_CARD_CONFIG_TABLE, ...

    arcgis工具

    21. 编辑时一些常用的快捷键 一、公共快捷键(对所有编辑工具有效): 在编辑未完成时按快捷键E切换到选择的环境中去 Z 放大 X 缩小 C 漫游 V显示节点 Ctrl+Z 撤销Ctrl+Y 重做 SpaceBar 暂停捕捉 二、编辑工具: ...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

Global site tag (gtag.js) - Google Analytics