Red5中的SharedObject的使用

1.序言:如果您对FMS 2以及后续产品的服务器端脚本开发一无所知,请忽略此文。

          如果您对Red5以及后续产品的服务器端Java开发一无所知,请忽略此文。

 

2. 正文:FMS中的Server Side Sharedobject(SO for short) 可以引发客户端连接上的SO的SyncHandler.

Red5中也有同样的功能,但是需要注意如下几点方能成功使用:

 

2.1 服务器端的SharedObject的创建必须在roomStart里,且不需要persist 也就是psersist = false。

2.2 客户端连接时最好是连接到一个特定的room而不是service的root。

2.3 给Application注册一个ISharedObjectSecurity 并且手动实现里面的接口isCreationAllowed

 

示范代码如下:

 

 if ("userlist".equals(name))
      {
        // get the SO creation service. Basically the following lines are exactly
        // what MultiThreadedApplicationAdapter does. You can also pass a reference
        // to your Application to this SecurityHandler and use it instead
        ISharedObjectService service = (ISharedObjectService) getScopeService(
              scope,
              ISharedObjectService.class,
              SharedObjectService.class,
              false
        );

        if( service.createSharedObject(scope, name, persistent) == true )
        {
          ISharedObject so = service.getSharedObject(scope, name);
          ISharedObjectListener listener = new SharedObjectListener();
          so.addSharedObjectListener(listener);
        }
      }

  
  
  return true;

 

大意就是如果某个特定名称的SO不存在了,则立刻创建它。

 

2.4 flash里的as3连接的时候,也需要用非persist方式

e.g : SharedObject.getRemote("userlist",nc.uri,false);

 

按照这四点来操作,SharedObject的OnSync或者SyncHandler就可以如愿生效了。

 

P.S: Red5版本 0.8 rc2

请各位Red5的开发者不要被oflademo误导。

另E文比较好的,可以在这里看原理。

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值