
第一步:新建元件
包括三部分
1.消息显示区,命名为show_txt
2.消息发送区命名为sent_txt
3.发送按钮,命名为sent_btn
并绑定类 CharRoom
第二步:编写绑定类
package test2{
import fl.controls.TextArea;
import fl.controls.TextInput;
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class ChatRoom extends MovieClip{
private var netclient:NetClient ;
public function ChatRoom(){
super();
//发送按钮
send_btn.addEventListener(MouseEvent.CLICK,sendMessage);
//连接服务端的
netclient = new NetClient(this);
}
/**
*服务端调用此方法来更新消息列表
*/
public function receiveBroadMes(mes:Object):void{
/*
*显示窗口加入消息 ,并且清空发送窗口
*因为和元件绑定所以直接访问实例名:show_txt
*/
show_txt.appendText(mes+"\n");
send_txt.text = "" ;
}
/**
* 当点击发送按钮的时候,发送消息
*/
private function sendMessage(e:MouseEvent):void{
this.netclient.broadcastMes(send_txt.text);
}
}
}
第三步:编写客户端连接类
package test2{
import flash.events.NetStatusEvent;
import flash.net.NetConnection;
import flash.net.ObjectEncoding;
public class NetClient extends NetConnection
{
private var chatroom:ChatRoom ;
public function NetClient(chatroom:ChatRoom) {
this.chatroom = chatroom ;
this.objectEncoding = ObjectEncoding.AMF0;
this.addEventListener(NetStatusEvent.NET_STATUS , netStatus);
this.connect("rtmp://192.168.0.20/red5_server");
}
/**
* 服务端调用此方法
* 更新显示窗口
*/
public function updateMes(obj:Object){
trace("test call back ...."+obj);
this.chatroom.receiveBroadMes(obj);
}
/**
* 一个客户端发消息所以客户端都能收到
* 调用服务端的广播方法
* 通知所有的在线用户
* @param mes 要发送的信息
*/
public function broadcastMes(mes:String):void{
this.call("broadcastMes",null,mes);
}
// 网络连接情况
private function netStatus (event:NetStatusEvent):void{
trace("net connection case is ........."+event.info.code);
}
}
}
第四步:编写服务端类
package test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IClient;
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;
import org.red5.server.api.Red5;
import org.red5.server.api.service.IServiceCapableConnection;
public class NetServer extends ApplicationAdapter{
private static final Log log = LogFactory.getLog(TestCon.class);
public NetServer(){
}
/**
* broadcast the message .notify all client
*/
public boolean broadcastMes(String message){
log.info("receive message is "+message) ;
log.info("server trace 1..............") ;
IConnection currentcon = Red5.getConnectionLocal();
IScope scope = currentcon.getScope();
Iterator<IConnection> conns = scope.getConnections();
/*
* loop all the online user then broadcase message .
*/
while(conns.hasNext()){
IConnection conn = conns.next();
if(conn instanceof IServiceCapableConnection){
IServiceCapableConnection iservice = (IServiceCapableConnection)conn ;
iservice.invoke("updateMes",new Object[]{message});
}
}
log.info("server trace 2..............") ;
return true ;
}
}
第五步:把元件发到主场景中
配置这里就不做说明,写的其他几遍文章都有详细说明。
分享到:
相关推荐
AS3中的`NetConnection`和`NetStream`类用于与Red5服务器建立连接并发送/接收数据。`NetStatusEvent`监听连接状态变化,`NetStream.appendBytes()`和`NetStream.publish()`用于发布用户的绘图动作。 7. **事件驱动...
【标题】"示例(as3red5电子白板)"指的是一个使用ActionScript 3 ...通过这个示例项目,开发者不仅可以学习到AS3编程的基本技巧,还能了解到如何利用Red5实现实时的多媒体通信,从而打造出一个功能完善的电子白板应用。
1. RTMP协议:Flash与Red5之间的通信主要基于RTMP协议,它允许客户端向服务器发送音频、视频数据流。理解RTMP协议的工作原理对于实现Flash与Red5的交互至关重要。 2. ActionScript 3.0接口:在Flash中,使用...
七、AS3与RED5的通信实例 1. **准备测试目录**: - 在webapps目录下新建testred5目录,复制SOSample目录中的所有内容至其中。 - 新建src目录作为源文件目录,调整项目属性,将输出目录指向Red5/webapps/testred5/...
### RED5 + Flex3 入门实例详解 #### 一、环境搭建与配置 ##### 1. 下载与安装 - **JRE**: Java运行环境是RED5的基础,确保安装了兼容版本。本文中使用的版本为Sun JDK 1.6.0_12。 - **RED5**: 本文使用的版本为...
3. **复制并重命名应用模板**: 找到RED5安装目录下的`doc/templates`目录,复制`myapp`模板到`webapps`目录,并将其改为你计划的项目名称,例如`myChat`。这个名称将作为你连接的服务名。 4. **创建源代码目录结构*...
JBoss AS(Application Server)是Red Hat公司开发的一款开源Java EE应用服务器,6.1.0.Final版本是其在2012年发布的一个稳定版本。本篇将深入探讨JBoss AS 6.1.0.Final的核心特性和关键知识点。 首先,JBoss AS ...
### 基于Red5的录音录像方法与代码解析 #### 概述 Red5是一款开源的媒体服务器,主要用于实时音视频流传输、录制、转码等操作。它支持多种协议,如RTMP、WebRTC等,并且可以方便地集成到Flash和其他客户端应用中。...
7. **WebSocket支持**:顺应Web通信技术的发展,JBoss AS 7.1.0引入了WebSocket协议的支持,允许双向实时通信,为富互联网应用提供了新的可能。 8. **改进的热部署**:在不中断服务的情况下,可以实现应用的热部署...
Flex与AS3概述 - **Flex**: 是一套开源框架和技术集合,用于构建跨浏览器、跨平台的应用程序。它由Adobe Systems开发,主要面向企业级应用开发,能够创建丰富的互联网应用程序(RIA)。 - **ActionScript 3 (AS3)**: ...
在本文中,我们将深入探讨如何使用Node-RED与Allen Bradley PLC进行通信,特别是在Raspberry Pi 2上。Node-RED是一种流行的低代码编程工具,它允许用户通过图形化界面连接不同的服务和设备,构建物联网(IoT)解决方案...
Red5服务器负责处理视频流的传输和存储,而SparkWeb客户端则在用户端处理视频展示和捕获,通过WebSocket或RTMP等协议与Openfire和Red5通信。 在实际应用中,开发者可以深入研究源码,了解Openfire与Red5的集成方式...
- **服务器要求**:标准PC服务器,支持的操作系统包括Fedora Core 3/4、Red Hat Enterprise Linux AS 4等。 - **网络部署模式**:支持不同的网络部署模式,如局域网、广域网等。 - **兼容性**:与多种第三方产品兼容...
### Red Hat Linux AS4上安装Oracle 10gR2 的详细步骤及注意事项 #### 一、概述 本文档详细介绍了如何在Red Hat Linux AS4操作系统上安装Oracle 10gR2 RAC (Real Application Clusters)。文档基于Vincent Chan在...
不过,通过Flash Media Server(FMS)或者Red5这样的开源Flash服务器,AS3可以用来编写服务器端代码。 音乐服务器可能包含以下几个关键组件: - **播放管理器**:负责处理播放控制,如播放、暂停、停止、快进、倒退...
三、 安装 Linux Red Hat Enterprise AS5 在安装 Linux Red Hat Enterprise AS5 中,需要选择自定义安装,然后选择“Red Hat Enterprise Linux 5”作为操作系统版本。在安装过程中,需要手动分区,选择虚拟机名称和...
在Red5中使用RemoteObject是实现Flash客户端与服务器端通信的一种技术。Red5是一个开源的流媒体服务器,它支持实时消息协议(RTMP)、实时传输协议(RTSP)以及HTTP流等多种流媒体交互方式。RemoteObject是Adobe ...
3. **编写ActionScript代码**:在Flash环境中编写与Red5交互的AS代码,实现客户端的功能。 4. **测试与调试**:使用Flash Player或Red5自带的测试工具进行测试,确保功能正常。 5. **发布与部署**:将编译后的SWF...
JBoss Application Server 7(简称JBoss AS7)是Red Hat公司推出的一款开源Java EE应用服务器,它基于EAP(Enterprise Application Platform)的轻量级版本,提供了对Java EE 6规范的全面支持。本教程旨在帮助J2EE...
【Red Hat Linux AS 3配置HA集群实战】 在IT领域,高可用性(HA)集群是一种重要的技术,它能够确保关键服务的连续性,避免单点故障。Red Hat Linux AS 3是Red Hat公司推出的企业级操作系统,支持构建HA集群以提供...