原创  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文比较好的,可以在这里看原理。

发表于 @ 2009年04月01日 07:28:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:如何给Flash的Socket验证提供crossdomain.xml文件服务端口。

  • 发表评论
  • 评论内容:
  •  
Copyright © zorou_fatal
Powered by CSDN Blog