red5的常用方法

转载 2011年01月15日 16:56:00

在使用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;

Red5的一般客户端连接各个事件的触发顺序

假设用户登录的地址是rtmp://localhost/MyChatRoom/lobby/roomA以下是事件按先后顺序排列 程序开始appStart:MyChatRoomStart:(在RED5启动...
  • gongminrui8987
  • gongminrui8987
  • 2013年07月24日 17:04
  • 676

RED5 - 流媒体协议基础知识

随着Internet的发展,单纯的文字和图形早已不能满足人们的需求,而是逐渐向音视频等多媒体方向发展。由于音视频文件包含大量的数据,在带宽受限的网络环境中,下载可能要耗费数十分钟甚至数小时。为了解决这...
  • leaze215
  • leaze215
  • 2016年08月18日 12:19
  • 215

red5简介及基础知识

简介   Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编写,使用RTMP作为流媒体传输协议...
  • hearain528
  • hearain528
  • 2015年04月02日 14:54
  • 549

《Red5 用户参考手册》之二:入门第一章 FAQ

官方最新《Red5 用户参考手册》全套下载地址         带着问题来看 FAQ 是使 FAQ 更有用处的最佳途径。无论是在什么地方,或者在评论下留下自己的问题。               ...
  • defonds
  • defonds
  • 2012年07月14日 22:15
  • 9473

【Red5】如何搭建环境以及调试Red5(1.0.6版本)应用(二)

Red5应用开发环境 一、 系统环境 基于前文的Red5服务器基本环境。 二、 安装Eclipse for Jave EE 到官网上下载Eclipse的安装包并解压缩:http://www.e...
  • z3237109
  • z3237109
  • 2016年04月28日 13:40
  • 1498

基于red5的在线视频录制实例和详细注释

FLASH代码//预定义声明import mx.utils.Delegate;//创建一个基本的网络连接对象var nc:NetConnection = new NetConnection();//连...
  • jamesjun
  • jamesjun
  • 2010年03月26日 13:57
  • 2011

Red5应用开发(一) 环境搭建

本文在Mac平台测试通过,windows版本存在问题,原因不明。 测试系统版本:OS X 10.11.5 eclipse版本为Juno J2EE版本,J2SE版本无法安装Red5插件,Juno之外...
  • NiliushaNLS
  • NiliushaNLS
  • 2017年06月08日 15:53
  • 549

Red5视频直播技术笔记

* 忘记更新了,一年前的东西,因为项目需要直播技术,查阅了很多资料,尝试了很多种办法,最终使用red5技术实现了pc端发布直播流,安卓客户端接收直播流信号进行直播,正常情况下有5秒左右的延迟。* 在...
  • SonnyDu
  • SonnyDu
  • 2016年07月19日 16:55
  • 1454

怎么将RED5项目部署在tomcat下运行,并且red5项目嵌入到J2EE项目中

写这篇文章前先允许我发下牢骚吧,因为这里面的曲折心酸真的难以体会啊,我是第一次弄一个helloworld的东西弄了将近3天 啊,差一点点我都基本要放弃了,可是还是那句老话对啊,坚持就是胜利,果然我胜利...
  • u012377333
  • u012377333
  • 2014年10月31日 11:53
  • 1888

【流媒体】Red5流媒体服务器开发总结

Red5流媒体服务器开发总结Red5 是 支持Windows,Linux等多平台的RTMP流媒体服务器,最早属于谷歌下的开源项目,先已移植到Github,地址为https://github.com/R...
  • u010773275
  • u010773275
  • 2016年09月07日 22:31
  • 2715
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:red5的常用方法
举报原因:
原因补充:

(最多只允许输入30个字)