作者信息:
QQ: 1473773560
Email: linxingliang198811@163.com
说明:有问题可以留言,发邮件!
版本说明:
Flex 4 (Flash Build)
Red5 1.0
------------------------------------------------------—————————————————————————————
3 Red5 第一个例子之HelloWorld
3.1 HelloWorld 开发前指导
不管在学习什么新技术,都离不开HelloWorld ,简单而经典。本技术也不例外,从HelloWorld 步步深入进行研究。在开发之前,先讲讲HelloWorld 的开发流程,主要包括服务端和客服端。Red5 程序主要是在服务端发布一个服务,供其他客户端进行访问,具体的步骤如下:
Ø 用Eclipse 编写客户端
Ø 将编写的程序部署发布
Ø 用Flex 编写客服端
接下来我们就按照这三大步进行开发。
3.2 用Eclipse 编写客户端
Red5 服务端的开发类似于开发一个web project ,所以我们的工程基本上的架构跟web project 一样,需要如下几个文件WEB-IN,classes,web.xml ,lib… 具体的步骤如下:
² 用Eclipse 新建一个Java Project
新建一个Java Project ,取名为Hello_Red5 ,具体的步骤不多说,我想大家这一步都不应该有问题,待会会把整个文件结构放上。
² 新建目录文件
刚才我们已经说了,我们实际开发的应该类似一个web project 才能够进行部署,当然一开始你也可以直接选择web project 。
l 在根目录下新建WEB-INF 文件夹
l 在WEB-INF 下新建classes 文件夹
l 在WEB-INF 下新建lib 文件夹
新建文件夹的步骤应该是这样的:
【点击工程】——【右键】——【 New 】——【 Folder 】——【输入文件名称即可】
现在的文件结构应该是这样的:
² 设置字节码存放位置
我们知道用Eclipse 编写的java 代码默认情况下编译之后的 .class 字节码文件都是存放在bin 目录下,我们需要修改下,让它存放在WEB-INF 下的classes 文件下,具体步骤如下:
【点击工程】——【右键】——【Build Path 】——【Configure Build Path 】——【在右边选择Source 菜单】——【在右下角就可以看到default outer folder, 点击Browse, 切换到
WEB-INF/classes 】——【切换完成之后在输入框的值应该是: Hello_Red5/WEB-INF/classes 】
关键的操作演示如下:
² 编写配置文件
虽说标题是些编写配置文件,但是其实大部分配置都已经有现成的模板了,只需要你稍微修改下就可以了。那么模板在哪里可以找到呢?其实就在Red5 的安装根目录的 /doc/templates/myapp/WEB-INF 下的四个配置文件,
分别是: log4j.properties ,red5-web.properties ,red5-web.xml ,web.xml 具体都是做什么用的,我们下节在进行讲解,这一节的主要目标是成功部署一个应用程序,细节的东西先不管。找到这几个配置文件之后复制到WEB-INF 目录下。
现在的文件结构应该是这样的:
² 导入Red5.jar 文件
Red5.jar 文件在Red5 安装根目录下。导入步骤:
【点击工程】——【右键】——【Build Path 】——【Configure Build Path 】——【在右边选择Libraries 菜单】——【点击Add External Jars… 】
关键步骤演示:
注:有人导入jar 文件的时候,会选择这样的方式,就是先复制Red5.jar 文件,然后粘贴到lib 目录下,最后在Add Jars…, 这种方式也是可以的,应该来说这种方式还有更好,不
会由于你改变了Red5 的安装路径就报错了。但是需要你注意的是:当你发布程序到Red5 服务器的时候,需要把lib 包下的Red5.jar 再删除掉,不删除的话是无法部署成功的,不
然你可以试一试,要是成功的话,也麻烦你告诉我,或许我部署有问题了。那么你肯定会有这样的疑问,我们在开发的时候不是用到Red5.jar 文件里的类库了吗,现在删除了,
那么它怎么还能运行呢?一开始我也是这么认为的。但是经过自己的各种尝试(谷哥和度娘好像没有查到相关的说明,要是有相关的文档说明的话,麻烦告诉我下。),发现当
你将程序部署到Red5 进行发布的时候,它是读取了Red5 安装目录下的Red5.jar 的。
² 编写代码
在src 目录下先新建一个包: cn.app, 在新建的包下新建一个类,取名为Application, 代码如下:
package cn.app;
import org.red5.server.adapter.ApplicationAdapter;
public class Application extends ApplicationAdapter{
/**
* 提供访问的方法,可以写多个,让客服端进行调用.
* @param name
* @return
*/
public String login(String name){
return "Red5 say:Hello,"+name;
}
}
此java 代码跟普通java 代码没有什么区别,主要是该类继承了
org.red5.server.adapter.ApplicationAdapter 类。
现在的文件结构应该是这样的:
² 修改WEB-INF 下的配置文件
我们说配置文件有模板,但是没有不用进行修改的模板吧,所以还是需要你手动的修改下配置文件,但是改动不大,不用担心。
² red5-web.properties 文件
将 webapp.contextPath=/myapp 修改为:
webapp.contextPath=/Hello_Red5
其中Hello_Red5 是你的工程名称。
webapp.virtualHosts 配置的是虚拟主机地址,在此我们可以不进行修改。
² red5-web.xml
将
< bean id ="web.handler"
class ="the.path.to.my.Application"
singleton ="true" />
修改为:
< bean id ="web.handler"
class ="cn.app.Application"
singleton ="true" />
注:修改的是你自己的class 。
删除(或者注释掉):
< bean id ="myhandler.service"
class ="the.path.to.my.ServiceHandler"
singleton ="true" />
² web.xml
将
< param-name > webAppRootKey </ param-name >
< param-value > /myapp </ param-value >
修改为:
< context-param >
< param-name > webAppRootKey </ param-name >
< param-value > /Hello_Red5 </ param-value >
</ context-param >
注:param-value 指向你的工程名称。
删除(或者注释):
< context-param >
< param-name > log4jConfigLocation </ param-name >
< param-value > /WEB-INF/log4j.properties </ param-value >
</ context-param >
< listener >
< listener-class > org.springframework.web.util.Log4jConfigListener
</ listener-class >
</ listener >
< listener >
< listener-class > org.springframework.web.context.ContextLoaderListener </ listener-class >
</ listener >
注: ContextLoaderListener 代码是启动Sping 监听器的,按道理是不应该注释掉的,但是不注释掉的话,就会报错。我在网上查找了很多资料,甚至是英文网站都没有相关的说明,我是通过不断的尝试,才知道注释掉能够正常运行。我想应该是Red5 1.0 版本在conf 目录下就应该有启动Spring 监听器了(要是有人有知道的,请联系我)。另外两个主要是Log4j 日志的,要是不注释掉的话,需要加入Log4j.jar 文件。
至此代码就开发完成了,那么就让我们小休息一会吧。
温馨提示 :在开发的时候,我们发现每次编译完之后,都需要重新复制工程到Red5/webapps 进行部署,这样很是麻烦,一方面我们可以用ant 进行部署,但是实话说ant 我还真是不会,于是我就采用了偷懒的形式:把Eclipse 的workspace 直接设置到Red5/webapps 下,这样每次更新就是更新了webapps 的数据了。主要还有就是在项目上线的时候,可以把src 下的源码删除了。
3.3 部署发布程序
革命尚未成功,我们仍需努力,让我们一起来见证奇迹吧。
² 部署程序
程序的部署还是很简单的,说的直白点就是复制粘贴的过程。将我们编写的Hello_Red5 复制到Red5 的安装目录下的webapps 目录下。
² 发布程序
发布程序就更easy 了,就是启动服务器的过程。进入到Red5 的安装目录,启动Red5.bat 文件。需要的注意的是,有可能之前就启动Red5 服务器了,但是当你重新发布程序的时候,需要你重新再启动。
² 测试程序是否发布成功
本地的话,见文件夹【测试工具】。在网页的见附件,下载附件里的【Red5 用rtmp 是否能够连接工具--Angel 提供】。打开Main.html
进行测试,演示图如下:
3.4 用Flex 编写客户端
坚持就是胜利,马上就有葡萄可吃了。
² 新建一个Flex 项目
打开开发工具,新建一个Flex 项目:【右键】——【新建】——【Flex 项目】,项目名称随意。
² 编写访问服务端的代码
首先我们需要在启动程序的时候,就去连接客户端,如果连接成功的话,那么就将返回的数据弹出。
启动文件mxml 文件的代码主要如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" creationComplete="init()"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
//程序加载完成执行的事件.
private function init():void{
//定义一个网络连接对象.
var nt:NetConnection = new NetConnection();
// 设置 连接 地址.
nt.connect("rtmp://127.0.0.1/Hello_Red5");
//连接成功失败监听--这个前期先不进行监听.利用这个自己可以开发一个 连接Red5的测试工具.
//调用服务端的函数.
/*
login: 方法的名称,在Application类进行声明。
new Responder(loginHandler): 回应处理.
Flex4:参数,多个参数就是再加上 逗号 ,在进行添加。这个参数是在 login方法定义的。
*/
nt.call("login",new Responder(loginHandler),"Flex4");
}
//函数处理.
private function loginHandler(obj:Object):void{
Alert.show(obj+"");
}
]]>
</fx:Script>
</s:Application>
² 运行应用程序
右键运行应用程序,如果运行成功的话,在浏览器会弹出:
Red5 say: Hello ,Flex4
- 大小: 4.3 KB
- 大小: 71.4 KB
- 大小: 7.2 KB
- 大小: 69.5 KB
- 大小: 8.4 KB
- 大小: 7.7 KB
分享到:
相关推荐
NULL 博文链接:https://blessht.iteye.com/blog/1142066
Flex作为一个客户端。同Red5自带的例子中的一个服务一起使用,合成一个简单的聊天例子。
前 言 ...3. Red5第一个例子之HelloWorld 3.1 HelloWorld开发前指导 3.2 用Eclipse编写客户端 3.3 部署发布程序 3.4 用Flex编写客户端 4. Red5配置文件之解说 5. 用Flex编写用rtmp协议连接Red5工具
RED5 v0.7+FLEX3入门的翔实例子,每一步都有详细的说明,保证能正常通过,有助于在几分钟内详细了解RED5. 网上的资料要么过时、要么不清楚、要么没有说清楚怎样验证。
Flex+red5+eclipse的部署
Flex+Red5+Tomcat视频语音录制、播放
flex + red5 简单实例,Flex作为一个客户端。同Red5自带的例子中的一个服务,客户端请求服务器的简单例子
red5最简单的例子,包括最基本的创建流程文字介绍,以及实际的例子。
Windows 下Red50.9+Flex配置,附有截图,步骤很详细,按照这个步骤就可以配置成功,有几个网友都是一次性就ok,还带有一个Red50.9+Flex的小例子,希望对你有所帮助。
简单的flex+red5学习,对初步学习者很有帮助
import org.red5.server.api.Red5; import org.red5.server.api.service.IServiceCapableConnection; import org.red5.server.api.so.ISharedObject; import org.red5.server.api.ScopeUtils; import org.red5....
Flex Red5 Tomcat 视频语音录制和播放 在网上找,总发现文章都一样,而且都是不完整的, 这里希望能够给跟我一样学习中的朋友一些帮助, 详细说明在压缩文件中有。 Flex+Red5+Tomcat视频播放器: ...
red5入门,tomcat+red5+myeclipse集成,原创禁止转载,欢迎补充!
flex与java之间的信息交互,使用的框架是red5
Red5+H5实现点播和直播
Red5 + MyEclipse +Tomcat配置 经过几天的研究 终于在tomcat中成功运行red5的demo 文档里面介绍了详细配置过程。
Red5+的安装和使用.doc配置Red5详解
安卓Andriod源码——Red5+直播系统的架构服务端的直播流工程.zip