- 浏览: 1068641 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
研究完red5的demo之后,我们可以手动写个小例子,试试连接red5。
准备步骤,打开MyEclipse和Flex Builder。MyEclipse做一个web工程,写一个简单的Java文件
- package org.red5.test;
- import org.red5.server.adapter.ApplicationAdapter;
- import org.red5.server.api.IClient;
- import org.red5.server.api.IConnection;
- import org.red5.server.api.IScope;
- public class Application extends ApplicationAdapter {
- private IScope app = null;
- public boolean appStart(IScope __app) {
- app = __app;
- super.appStart(app);
- return true;
- }
- @Override
- public synchronized boolean connect(IConnection conn, IScope scope, Object[] params) {
- System.out.println("connect");
- IClient client = conn.getClient();
- String uid = client.getId();
- System.out.println("connect->uid:" + uid);
- System.out.println("welcome to red5 world !");
- return true;
- }
- }
package org.red5.test; import org.red5.server.adapter.ApplicationAdapter; import org.red5.server.api.IClient; import org.red5.server.api.IConnection; import org.red5.server.api.IScope; public class Application extends ApplicationAdapter { private IScope app = null; public boolean appStart(IScope __app) { app = __app; super.appStart(app); return true; } @Override public synchronized boolean connect(IConnection conn, IScope scope, Object[] params) { System.out.println("connect"); IClient client = conn.getClient(); String uid = client.getId(); System.out.println("connect->uid:" + uid); System.out.println("welcome to red5 world !"); return true; } }
然后将整个WebRoot 拷贝到red5目录下面的webapps,然后在WEB-INF目录下补充上 red5-web.xml 和 red5-web.properties 文件,将red5-web.xml 里面的修改为
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="location" value="/WEB-INF/red5-web.properties" />
- </bean>
- <bean id="web.context" class="org.red5.server.Context"
- autowire="byType" />
- <bean id="web.scope" class="org.red5.server.WebScope"
- init-method="register">
- <property name="server" ref="red5.server" />
- <property name="parent" ref="global.scope" />
- <property name="context" ref="web.context" />
- <property name="handler" ref="web.handler" />
- <property name="contextPath" value="${webapp.contextPath}" />
- <property name="virtualHosts" value="${webapp.virtualHosts}" />
- </bean>
- <bean id="web.handler"
- class="org.red5.test.Application"
- singleton="true" />
- </beans>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="/WEB-INF/red5-web.properties" /> </bean> <bean id="web.context" class="org.red5.server.Context" autowire="byType" /> <bean id="web.scope" class="org.red5.server.WebScope" init-method="register"> <property name="server" ref="red5.server" /> <property name="parent" ref="global.scope" /> <property name="context" ref="web.context" /> <property name="handler" ref="web.handler" /> <property name="contextPath" value="${webapp.contextPath}" /> <property name="virtualHosts" value="${webapp.virtualHosts}" /> </bean> <bean id="web.handler" class="org.red5.test.Application" singleton="true" /> </beans>
然后修改web.xml文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Red5App</display-name>
<context-param>
<param-name>Red5App</param-name>
<param-value>/red5_app2</param-value>
</context-param>
<listener>
<listener-class>org.red5.logging.ContextLoggingListener</listener-class>
</listener>
<filter>
<filter-name>LoggerContextFilter</filter-name>
<filter-class>org.red5.logging.LoggerContextFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoggerContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>rtmpt</servlet-name>
<servlet-class>org.red5.server.net.rtmpt.RTMPTServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!--
<servlet>
<display-name>SecurityTest</display-name>
<servlet-name>SecurityTest</servlet-name>
<servlet-class>org.red5.demos.oflaDemo.SecurityTest</servlet-class>
</servlet>
-->
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/fcs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/open/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/close/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/send/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/idle/*</url-pattern>
</servlet-mapping>
<!--
<servlet-mapping>
<servlet-name>SecurityTest</servlet-name>
<url-pattern>/securitytest</url-pattern>
</servlet-mapping>
-->
<!--
<security-constraint>
<web-resource-collection>
<web-resource-name>Forbidden</web-resource-name>
<url-pattern>/streams/*</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
-->
</web-app>
重启red5,没有错误可以说明部署成功了。
开发一个客户端去连接red5,可以使用Flex 工具编写,不管你是做Web application 还是 Desktop application其实都一样。代码:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
- <mx:Script>
- <![CDATA[
- import flash.display.Sprite;
- import flash.events.NetStatusEvent;
- import flash.events.SecurityErrorEvent;
- import flash.media.Video;
- import flash.net.NetConnection;
- import flash.net.NetStream;
- import flash.events.Event;
- var command:String="rtmp://192.168.61.115:1935/red5_app";//这里注意修改地址为你的red5服务器地址
- var mync:NetConnection=new NetConnection();
- function netStatusHandler(sevt:NetStatusEvent):void{
- var str="_____________________netStatusHandler_____________________\n";
- str+="code:"+sevt.info.code+"\n";
- str+="level:"+sevt.info.level+"\n";
- if(sevt.info.application!=undefined){
- str+="application:"+sevt.info.application+"\n";
- }
- if(sevt.info.description!=undefined){
- str+="description:"+sevt.info.description+"\n";
- out_txt.text=str;
- }
- }
- function appinit(){
- mync.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);
- }
- function serverConnect():void{
- appinit();
- out_txt.text="Connectting ... ...";
- mync.connect(command,true);
- trace("serverConnect:"+command);
- }
- ]]>
- </mx:Script>
- <mx:Style>
- WindowedApplication
- {
- background-color:"0xffffff";
- background-alpha:"0.5";
- }
- </mx:Style>
- <mx:Label y="100" text="连接状态:未连接" horizontalCenter="0" fontSize="12" fontWeight="normal" id="out_txt" condenseWhite="true" height="150"/>
- <mx:Button y="254" label="点击我连接Red5" fontSize="11" fontWeight="normal" horizontalCenter="0" click="serverConnect()"/>
- </mx:Application>
发表评论
-
Windows下安装并设置Redis
2017-11-28 14:23 635版权声明:欢迎加入【开源技术交流群】: https:// ... -
由于安全狗导致网站访问出现302重定向问题
2015-08-06 18:14 1710网站开始的时候,碰到这种问题,开始没留意以为是浏览器导致的。后 ... -
windows下使用memcache并修改memcache最大使用内存
2015-02-27 22:42 783将memcache服务器安装包解压到C:\memcached ... -
nginx 日志文件切割
2014-12-13 08:23 839转载:http://www.cnblogs.com/beni ... -
nginx+tomcat7+memcached做集群以及session复制
2014-12-07 22:50 751首先:配置tomcat集群 nginx+ tomcat7 ... -
Memcached入门
2014-11-27 23:17 794Memcached是一个高性能的分布式内存对象缓存系统,用于 ... -
nginx + tomcat 配置,静态资源直接使用nginx
2014-11-26 22:34 982upstream tomcat_server { ... -
Nginx Location配置总结
2014-11-26 22:33 819语法规则: location [=|~|~*|^~] /ur ... -
Memche全站缓存
2014-11-13 17:23 931http://my249645546.iteye.com/bl ... -
煩惱的“java.lang.OutOfMemoryError:PermGen space"異常
2014-11-10 20:48 679最近在做一個jee的項目 ... -
nginx+tomcat实现负载均衡
2014-11-05 22:00 939作者:niumd Blog:http://ari.itey ... -
Tomcat 7优化前及优化后的性能对比
2014-11-05 09:52 1100Tomcat 7在我们日常开发、测试、生产环境都会使用到,但 ... -
resin 加花生壳搭建外网访问服务器
2012-10-08 20:44 1083花生壳发布WEB服务 -
resin 配置session过期
2012-03-23 10:29 1511Session的配置 <session ... -
nginx 解决session共享问题(jvm-route)方式
2012-02-28 13:45 2730前几天看到 http://code.google.com ... -
nginx.conf配置详细说明
2012-02-28 09:15 1321vim conf/nginx.conf#用户 用户组user ... -
nginx 解决session共享问题
2012-02-28 09:19 14521) 不使用session,换作cookie能把sessio ... -
java.lang.NoClassDefFoundError: com/caucho/make/PersistentDependency
2012-02-28 08:09 1778之前一直用resin-pro-3.0.22,这两天由于工作需要 ... -
玩玩负载均衡---在window与linux下配置nginx
2012-02-27 14:29 1427最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Cit ... -
squid 配置缓存服务器
2011-12-31 13:40 1616Squid for Windows 简介 是大家也许不知道, ...
相关推荐
red5 学习笔记 随便写的一些东西,没多大用,有点乱,看着下载吧。
**Red Hat Linux 9 讲义及学习笔记(基础)** Red Hat Linux 9 是一款历史悠久的开源操作系统,它是基于Linux内核的发行版,专为服务器和工作站环境设计。这款系统以其稳定性、安全性和易用性而备受赞誉,尤其适合...
以下是对"Javajdk5学习笔记"中可能包含的知识点的详细解析: 1. **自动装箱与拆箱**:JDK 5引入了自动装箱和拆箱功能,使得基本类型和它们对应的包装类之间可以无缝转换,提高了代码的简洁性。例如,`Integer i = ...
**良葛格JDK5学习笔记** 在Java编程领域,JDK5是一个重要的里程碑,它引入了许多创新特性,极大地提升了开发效率和代码质量。本文将深入探讨这些关键知识点,为初学者提供一个全面的JDK5学习指南。 一、自动装箱与...
2. **CentOS介绍**:CentOS是Linux发行版之一,它是基于Red Hat Enterprise Linux的克隆版本。CentOS因其稳定性和企业级特性而受到欢迎,是初学者学习Linux的理想选择。 3. **学习笔记结构**:教程按照章节顺序展开...
GlusterFS 学习笔记 GlusterFS 是一种开源的分布式文件系统,它可以将多个硬盘组合成一个大型存储系统,提供高性能、可扩展性和高可用性的存储解决方案。下面是 GlusterFS 的一些重要知识点: 1. Raid 概念 Raid...
《CSS经典学习笔记》 CSS(Cascading Style Sheets)是网页设计中不可或缺的一部分,它负责定义网页内容的样式和布局。本学习笔记将深入探讨CSS的核心概念、选择器、盒模型、布局方式以及响应式设计等多个方面,...
本学习笔记旨在帮助新手全面理解并掌握Java 5.0的关键知识点。 一、泛型(Generics) Java 5.0引入了泛型,它允许在定义类、接口和方法时指定类型参数,从而实现类型安全的集合。泛型消除了强制类型转换的需要,...
### Qt学习笔记知识点详解 #### 一、从Hello Qt开始 **知识点1:Qt程序的基本结构** - **头文件引入**: - 第1行和第2行代码中,`#include <QApplication>` 和 `#include <QLabel>` 是引入Qt中的两个类:`...
### ggplot2学习笔记知识点详解 #### 一、ggplot2简介与基本使用 ggplot2是R语言中一个强大的图形绘制包,它基于“Grammar of Graphics”(绘图语法)理论,允许用户通过组合不同的图形元素来创建复杂的统计图表。...
Red5是一款开源的流媒体服务器,它基于几个关键的技术组件构建,包括Jetty、Mina和...通过对Red5的学习和研究,我们可以深入了解流媒体服务的运作机制,并掌握如何利用这些工具来满足各种复杂的在线视频和音频需求。
这份“Linux学习笔记”涵盖了多个关键主题,旨在帮助初学者及进阶用户深入理解和掌握Linux系统。 《Linux一句话精彩问答.doc》可能包含了一系列关于Linux日常使用、命令行操作、系统管理等方面的简洁问答,比如如何...
在“HTML基础学习笔记”中,我们可以深入理解HTML的基本结构、样式控制、超链接、图像和表格的使用,以及列表的创建。 首先,HTML的基本结构由`<html>`、`<head>`和`<body>`三个主要部分组成。`<html>`是整个文档的...
### Linux RAID 5 扩容学习笔记 #### 一、概览 本文档是一份针对Linux环境下RAID 5配置与动态扩容的学习笔记。主要内容包括如何动态地向现有的RAID 5组中添加新的硬盘、如何对新硬盘进行格式化并将其加入到RAID 5...
### Redhat Enterprise Linux 5 学习笔记知识点总结 #### 一、Linux系统介绍与安装 **1. Linux的历史背景与发展** - **UNIX系统的诞生**:1970年,贝尔实验室的两位科学家发明了UNIX系统,这标志着现代操作系统的...
### HTML与CSS学习笔记 #### 一、基础知识概述 HTML(HyperText Markup Language)与CSS(Cascading Style Sheets)是构建网页的基础技术。通过学习HTML与CSS,我们可以创建结构化且美观的网页。 - **WWW (World ...
韩顺平 Linux 学习笔记 本学习笔记涵盖了 Linux 的基础知识、Samba 服务的搭建、Web 项目的开发和发布等内容。学习笔记分为多个阶段,从基础的 Linux 平台开发到高级的 Unix 环境编程,并涉及到 Linux 应用系统开发...