`

玩转Red5+Flex(3)—— Red5第一个例子之HelloWorld

 
阅读更多

 

作者信息

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.propertiesred5-web.xmlweb.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

< context-param >

       < param-name > webAppRootKey </ param-name >

       < param-value > /myapp </ param-value >

    </ context-param >

修改为:

   < 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 我还真是不会,于是我就采用了偷懒的形式:把Eclipseworkspace 直接设置到Red5/webapps 下,这样每次更新就是更新了webapps 的数据了。主要还有就是在项目上线的时候,可以把src 下的源码删除了。

 

3.3 部署发布程序

   革命尚未成功,我们仍需努力,让我们一起来见证奇迹吧。

²  部署程序

程序的部署还是很简单的,说的直白点就是复制粘贴的过程。将我们编写的Hello_Red5 复制到Red5 的安装目录下的webapps 目录下。

²  发布程序

发布程序就更easy 了,就是启动服务器的过程。进入到Red5 的安装目录,启动Red5.bat 文件。需要的注意的是,有可能之前就启动Red5 服务器了,但是当你重新发布程序的时候,需要你重新再启动。

²  测试程序是否发布成功

本地的话,见文件夹【测试工具】。在网页的见附件,下载附件里的【Red5rtmp 是否能够连接工具--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
2
6
分享到:
评论
6 楼 yuxingbiao 2014-08-07  
haraldred 写道
我也遇到了相似问题:

在连接自己的helloworld例子时,我这里跳出了

NetConnection.Connect.Closed;

但是 连接red5自带的SOSample o 却是

NetConnection.Connect.Success;



注:xml文件是从doc文件夹下myapp模板复制修改的,都按要求来的
到底那里出了问题

5 楼 liwei3324 2014-03-09  
非常感谢楼主的无私分享。搞了两天,终于将网上下载的一个Demo运行成功了。
是楼主的这句话帮助我解决了问题“当你发布程序到Red5 服务器的时候,需要把lib 包下的Red5.jar 再删除掉,不删除的话是无法部署成功的”
4 楼 longhuo2009 2013-04-19  
我也遇到了相似问题:

在连接自己的helloworld例子时,我这里跳出了

NetConnection.Connect.Closed;

但是 连接red5自带的SOSample o 却是

NetConnection.Connect.Success;



注:xml文件是从doc文件夹下myapp模板复制修改的,都按要求来的
到底那里出了问题
3 楼 林祥纤 2012-08-12  
2 楼 haraldred
我已经回复了。
2 楼 haraldred 2012-08-07  
问LZ一个问题:

在连接自己的helloworld例子时,我这里跳出了

NetConnection.Connect.Rejected;

但是 连接red5自带的SOSample 或 oflaDemo 却是

NetConnection.Connect.Success;


求解啊,是配置xml出问题了么;

注:xml文件是从SOSample复制过来的(doc文件夹下没有myapp模板),,按文章的那部分修改的。

red5版本 setup-Red5-1.0.0-RC2 ;
1 楼 林祥纤 2012-08-04  
写后感:发布一篇文章太不容易了呀。word写的布局还不能直接复制过来。

相关推荐

    red5+flex 简单的hello word实例

    在本实例中,我们将使用Red5和Flex创建一个简单的“Hello World”应用。首先,你需要在本地或服务器上安装并配置Red5。这通常涉及下载Red5的发行版,解压到合适的位置,然后启动服务器。 1. **设置Red5** - 安装...

    red5+flex简单聊天例子

    【标题】:“Red5+Flex简单聊天例子”揭示了如何结合使用Red5服务器和Flex前端技术来构建一个基本的在线聊天应用。Red5是一个开源的流媒体服务器,它支持实时通信,而Flex则是一个用于创建富互联网应用程序(RIA)的...

    red5+flex实现超简易群聊天功能

    本篇文章将探讨如何利用Red5服务器和Flex技术来创建一个超简易的群聊功能。Red5是一款开源的流媒体服务器,而Flex是一种用于开发富互联网应用程序(RIA)的前端框架,基于ActionScript和Flash Player。 首先,让...

    RED5+Flex3一步一步入门实例,保证通过!

    ### RED5 + Flex3 入门实例详解 #### 一、环境搭建与配置 ##### 1. 下载与安装 - **JRE**: Java运行环境是RED5的基础,确保安装了兼容版本。本文中使用的版本为Sun JDK 1.6.0_12。 - **RED5**: 本文使用的版本为...

    Red5 + Flex开发实例

    Red5的第一个例子是HelloWorld,这是一个经典的基础示例,通过它开发者可以学习如何使用Red5来发布服务端程序以及如何使用Eclipse来编写客户端。编写客户端时,可以使用Flex Builder工具,该工具是Eclipse的一个插件...

    flex + red5 简单实例

    在文件名称列表中,"red5的一个小例子"可能是一个包含源代码和配置文件的项目,这个项目演示了如何用Flex客户端连接到Red5服务器并实现基本的交互。在这个例子中,你可能会看到以下关键组件: 1. Flex项目的源代码...

    Flex+red5+eclipse的部署

    Flex+red5+eclipse的部署

    red5+flex小程序

    1. **Red5 服务器**:Red5 是一个开源的流媒体服务器,支持 RTMP (Real-Time Messaging Protocol)、RTMPT、RTMPS、RTMPE等多种协议,可以用于视频直播、点播、录制等功能。在本文档中,Red5 作为Flex应用程序的后端...

    多人视频会议RED5+FLEX

    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 视频语音录制和播放 在网上找,总发现文章都一样,而且都是不完整的, 这里希望能够给跟我一样学习中的朋友一些帮助, 详细说明在压缩文件中有。 Flex+Red5+Tomcat视频播放器: ...

    Red50.9+Flex配置

    提供的压缩包中包含了一个Red5 0.9与Flex集成的小示例,它可能包括一个简单的Flex界面和与Red5服务器交互的代码。你可以通过以下步骤运行此示例: 1. **导入示例**:将压缩包中的文档解压,然后在Flash Builder中...

    red5把flex与java交互的例子

    在"red5的一个小例子"这个压缩包中,可能包含了一个简单的Flex与Java通过Red5交互的示例项目。这个示例可能涵盖了创建Flex客户端、配置Red5服务器以及编写Java后台服务的步骤,通过实际操作帮助开发者理解如何实现...

    red5+flowplayer

    Red5是一款开源的Java流媒体服务器,它支持实时传输协议(RTMP)、RTMPT、RTMPE、RTMPTE和RTMPS,能够处理音频、视频和数据流。Flowplayer则是一款流行的HTML5和Flash视频播放器,用于在网页上无缝播放视频内容。在...

    red5入门,tomcat+red5+myeclipse集成,原创禁止转载

    Red5是一款开源的流媒体服务器,它支持实时流传输协议(RTMP),并提供录制、播放、存储等功能,广泛应用于在线视频直播、VoIP、互动游戏等场景。本教程将介绍如何进行Red5的入门学习,并结合Tomcat和MyEclipse进行...

    Red5+mysql免安装版

    【Red5+MySQL免安装版】是一个精心配置的IT环境组合,主要包含了Red5服务器、MySQL数据库和Java运行环境,所有组件都以绿色免安装的形式提供,方便用户快速部署和使用。这个组合特别适合那些需要在本地进行视频流...

    Red5 + MyEclipse +Tomcat配置

    ### Red5 + MyEclipse + Tomcat 配置详解 #### 一、环境搭建与配置概述 本篇文章主要介绍如何在MyEclipse环境下配置Red5服务器,并使其与Tomcat服务器协同工作,最终实现Red5的Demo成功运行。Red5是一款开源的流...

    Red5+H5实现点播和直播

    ### Red5+H5 实现点播和直播 在探讨如何使用Red5与HTML5(简称H5)技术实现点播和直播之前,我们先来了解下这些技术的基础概念。...随着技术的发展,Red5也在不断地完善其功能,使之成为音视频领域的强大工具之一。

    用red5部署的flex的简单聊天室源代码

    在本文中,我们将深入探讨如何使用Red5部署一个基于Flex的简单聊天室源代码。Red5是一款开源的流媒体服务器,而Flex是一种用于构建富互联网应用程序(RIA)的开发工具,通常与Adobe Flash Player一起使用。这个示例...

Global site tag (gtag.js) - Google Analytics