用RED5作为服务器端,Flash作为客户端开发实时在线游戏已经有一段时间了。
下面我把一些在开发中的问题及解决说明一下,希望可以给大家带来帮助。
先大致说一下我们开发的逻辑,我们自己定义了一套MESSAGE,MESSAGE分为3类,
1、EVENT,处理事件。EVENT相当于一个注册表,比如说,所有用户列表更新的事件,用户进入时首先会向服务器注册一个事件用于获取所有用户的列表,当有新用户进入时,服务端会搜索注册了这一事件的用户,并向所有用户INVOKE相对应的方法,相当于广播。
2、REQUEST,处理用户请求。用户请求可能会有Response,可能会有Brocast,根据Request的类型来分别进行逻辑处理。
3、RESPONSE,请求处理完成之后的响应。有Response必然有Request,当用户发起了Request,服务端会统一的INVOKE客户端的一个方法,由该方法转发服务器处理之后的数据。
下面说一下一些问题
1、关于Scope
room就是一个Scope,链接Room,可以通过客户端发起的Connection的URL进行链接,这种情况下,服务端会判断是否已经存在这个Room,如果存在,则让用户直接链接,如果不存在,则服务器端会先创建这个Room,再让用户连接。
我们为了实现大厅和房间,在appStart时手动的去创建了这些Room,一开始用了scope.addChildScope()方法,结果在用户进入房间时一直报NullPointException。查了一下API,发现,addChild只能工作在子域中,修改为createChildScope(),问题解决。
用户连接到app直后,通过conn.connect(Scope scope)方法进入房间,但是此时发现了一个百思不得其解的问题,虽然没有给程序造成影响,但看着总是不爽
。当用户连接到Room之后,会进行appDisconect的操作,当用户断开客户端时,却只执行了roomDisconect方法,当用户断开链接时,我需要在appDisconect中作一些关于用户的操作。这个问题一直没解决,如果有同学知道是为啥,请解答,在这先谢过
2、从Flash客户端带参数回传
做过很多的测试,用JSON的形式最好,JSON回传的字符串,在服务端可以通过ObjectMap这个类去解开,很方便。
3、全局变量
一定要谨慎的使用全局变量,最好是通过Room来存储一些全局的数据,比如游戏的进度信息,用户信息。
4、Ghost
经常会出现一些客户端即使断开了还存在的情况,可以用killGhostConnections()这个方法。
5、ShareObject的利弊
当最后一个用户离开时,自己创建的ShareObject会被销毁,当客户端再链接时,会由客户端去创建这个SharedObject,服务端就无法监控这个SO的状态了,所以推荐用Call及Invoke的方式进行交互。
大概就这些,希望对大家有帮助
分享到:
相关推荐
搭建RED5应用是创建基于Flash技术的实时多媒体服务器应用程序的过程,Eclipse是一个广泛使用的Java集成开发环境,可以方便地管理和构建RED5项目。以下是详细步骤和相关知识点: 1. **下载RED5**: 首先从RED5官方...
### Red5的使用方法与具体功能介绍 #### 一、Red5概述 Red5是一款开源的、基于Java的媒体服务器,它可以支持RTMP协议(Real Time Messaging Protocol),从而实现流媒体传输的功能。Red5不仅可以作为独立的应用...
7. **管理**:由于Red5现在被作为Tomcat的一个Web应用,你可以通过Tomcat的管理界面来监控和管理Red5服务,如启动、停止或重新部署。 在导入MyEclipse等集成开发环境中,可以更方便地进行上述步骤,如创建和配置...
2. 在运行Red5时,确保没有端口冲突,因为Red5默认使用5080端口。 3. 如果遇到问题,查阅Red5的官方文档或在相关论坛寻找解决方案。 总之,通过这个教程,你将学会如何在Tomcat上集成Red5,并利用MyEclipse进行高效...
Red5是一款开源的流媒体服务器,它支持实时流传输协议(RTMP)、HLS、RTSP等协议,广泛应用于在线视频、直播、互动教学等领域。本实例中的"red5应用程序"展示了一个完整的Red5应用解决方案,它实现了文件资源路径的...
通过学习Red5的手册,可以深入了解Red5的配置、使用和开发,掌握Red5的特点和功能,从而更好地应用Red5在实际项目中。 知识点: 1. Red5是一个用Java语言编写的开源Flash RTMP服务器。 2. Red5支持视频、音频流、...
3. **集成 Red5 与 Tomcat**:由于 Red5 是基于 Java 开发的,因此它可以与 Tomcat 结合使用,实现流媒体功能的 Web 应用。在集成过程中,需要将 Red5 的库文件添加到 Tomcat 的类路径中,并调整配置文件以确保两者...
### 基于Red5的流媒体服务器搭建与应用详解 #### 一、Red5概述 **Red5**是一款基于Java开发的开源免费Flash流媒体服务器。它利用Java语言及一系列强大开源框架构建而成,为企业的各类应用提供了坚实的基础。Red5...
8. 部署应用:一旦你的应用运行正常,可以通过Red5控制台或使用Ant、Maven等构建工具将其部署到Red5服务器上。这样,其他用户就可以通过网络访问你的流媒体服务了。 总结,使用Red5插件在Eclipse中搭建Java开发环境...
Red5是一款开源的流媒体服务器,它支持实时流传输协议(RTMP)、RTMPT、RTMPE、RTMPF、RTMPS等,能够处理音视频的直播、点播和录制等多种应用场景。在本项目中,我们关注的是Red5 1.0的Web版本,该版本特别适合在Web...
Red5是一款基于Java的开源Flash流媒体服务器,它支持RSTP协议,提供了一系列示例应用,如在线录制、播放、聊天和视频会议等。Red5作为Macromedia商业产品FMS的一个替代方案,具有开源、成本低和可扩展性强的优势。在...
1. "red5入门教程.pdf":这个文档是关于Red5的详细入门教程,涵盖了从安装到实际应用的全过程,是你学习Red5的宝贵资料。 通过深入学习Red5和Flash开发,你将能够构建起一套完整的流媒体解决方案,满足各种多媒体...
通过这些示例,学习者可以了解到如何使用Red5服务器来处理流媒体,如何创建互动的媒体应用,以及如何实现录制和播放功能。这可能涉及RTMP连接、流发布、订阅、媒体存储和检索等技术。此外,这也有助于理解Red5的API...
【Red5流媒体服务器安装与使用入门】 Red5是一款基于Java开发的开源流媒体服务器,它支持多种功能,包括将音频(MP3)和视频(FLV)转换为播放流,客户端播放流的录制(仅限FLV),共享对象,现场直播流发布,以及...
### Eclipse 创建第一个 Red5 应用程序示例 #### 知识点概览 - **Red5 安装与配置** - **Red5 示例应用程序构建** - **集成Eclipse与Red5** - **使用FlexBuilder创建客户端** #### 详细解析 ##### 1. 安装与配置...
根据提供的文档信息,本文将详细阐述如何使用FFmpeg和Red5搭建一个RTMP流媒体服务器,以及相关的配置和测试步骤。 首先,了解RTMP(Real Time Messaging Protocol)是一种网络协议,它被广泛用于在线直播和流媒体...
5. **应用程序接口(API)**:red5.jar还提供了丰富的API,供开发者创建自定义的Red5应用。这些API涵盖了连接管理、流管理、存储服务等多个方面,使得开发者可以轻松地构建与Red5服务器交互的应用程序。 6. **媒体...
4. **测试与调试**:使用示例应用或自己的应用进行测试,确保Red5运行正常。 开发者在使用Red5时,需要注意的问题包括: - **日志监控**:通过日志文件了解服务器运行状态,及时发现并解决问题。 - **安全设置**:...
4. **互动应用**:Red5支持交互式应用程序,例如聊天室、白板应用等,这使得它能够构建丰富的媒体交互体验。 5. **适应性流媒体**:通过HLS(HTTP Live Streaming)或DASH(Dynamic Adaptive Streaming over HTTP)...