red5的常用方法

在使用red5+flash做rpg游戏开发的时候有些功能是需要服务器来提供的,如最简单的多人用户上线,当一个用户上线后后要通知所有其他的用户,这个时候就需要red5去获取所用链接的客户端,然后通知客户端用户上线。当用户下线的时候,也是同样的需要red5的支持。 我在开发的时候是使用red5 0.8的版本。 下面详细介绍一下具体的实现。 ApplicationAdapter是客户端与red5连接的基础 ...
在使用red5+flash做rpg游戏开发的时候有些功能是需要服务器来提供的,如最简单的多人用户上线,当一个用户上线后后要通知所有其他的用户,这个时候就需要red5去获取所用链接的客户端,然后通知客户端用户上线。当用户下线的时候,也是同样的需要red5的支持。 
我在开发的时候是使用red5 0.8的版本。 
下面详细介绍一下具体的实现。 
ApplicationAdapter是客户端与red5连接的基础类: 
下面来介绍一下调用的顺序,和建立so的方法。 
第一步: 
RED5服务器启动后,开始加载,此时只能获取应用的SCOPE 
public boolean appStart(IScope arg0) { 
       this.createSharedObject(arg0, "point", true); 
ISharedObject so = this.getSharedObject(arg0, "point");//建立一个so 
if (so != null) 
so.addSharedObjectListener(new ShareObjectListener()); 
       return true; 

改方法中的ShareObjectListener监听器是一个需要实现ISharedObjectListener接口的类。这样就建立一个so了。
第二步:

响应连接处理,可获取当前connection的信息,并且可以接收客户端提供的参数

public boolean appConnect(IConnection conn, Object[] params){ 
       return true; 
}

第三步:连接成功,此时可获取client信息和SCOPE信息 
public boolean appJoin(IClient client, IScope app){ 
       return true; 

@Override 
public boolean roomStart(IScope arg0) { 
System.out.println(" 启动roomStart"); 
return true; 

如果需要获取每一个room中的客户端连接。 
@Override 
public boolean roomConnect(IConnection arg2, Object[] arg1) { 
         IScope arg0 = arg2.getScope(); 
         Set<IClient> i = arg0.getClients(); 
for (IClient c : i) { 
callClient(c.getConnections().iterator().next()); 

return true; 

public void callClient(IConnection conn) { 
        if (conn instanceof IServiceCapableConnection) { 
IServiceCapableConnection sc = (IServiceCapableConnection) conn; 
sc.invoke("resultFun",new Object[]{peopleArray},this); 
         } 

最后一步:

客户端浏览器关闭即退出应用。

public void appDisconnect(IConnection conn) { 
        return; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值