`
hereson2
  • 浏览: 470616 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

as3与red5通信---学习三

阅读更多

 

 

 


 

第一步:新建元件

包括三部分

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+red5电子白板demo

    AS3中的`NetConnection`和`NetStream`类用于与Red5服务器建立连接并发送/接收数据。`NetStatusEvent`监听连接状态变化,`NetStream.appendBytes()`和`NetStream.publish()`用于发布用户的绘图动作。 7. **事件驱动...

    示例(as3red5电子白板)

    【标题】"示例(as3red5电子白板)"指的是一个使用ActionScript 3 ...通过这个示例项目,开发者不仅可以学习到AS3编程的基本技巧,还能了解到如何利用Red5实现实时的多媒体通信,从而打造出一个功能完善的电子白板应用。

    red5入门详细教程

    1. RTMP协议:Flash与Red5之间的通信主要基于RTMP协议,它允许客户端向服务器发送音频、视频数据流。理解RTMP协议的工作原理对于实现Flash与Red5的交互至关重要。 2. ActionScript 3.0接口:在Flash中,使用...

    red5_good

    七、AS3与RED5的通信实例 1. **准备测试目录**: - 在webapps目录下新建testred5目录,复制SOSample目录中的所有内容至其中。 - 新建src目录作为源文件目录,调整项目属性,将输出目录指向Red5/webapps/testred5/...

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

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

    如何在Eclipse上搭建RED5应用

    3. **复制并重命名应用模板**: 找到RED5安装目录下的`doc/templates`目录,复制`myapp`模板到`webapps`目录,并将其改为你计划的项目名称,例如`myChat`。这个名称将作为你连接的服务名。 4. **创建源代码目录结构*...

    jboss-as-distribution-6.1.0.Final系列1

    JBoss AS(Application Server)是Red Hat公司开发的一款开源Java EE应用服务器,6.1.0.Final版本是其在2012年发布的一个稳定版本。本篇将深入探讨JBoss AS 6.1.0.Final的核心特性和关键知识点。 首先,JBoss AS ...

    基于Red5的录音录像方法和代码

    ### 基于Red5的录音录像方法与代码解析 #### 概述 Red5是一款开源的媒体服务器,主要用于实时音视频流传输、录制、转码等操作。它支持多种协议,如RTMP、WebRTC等,并且可以方便地集成到Flash和其他客户端应用中。...

    jboss-as-7.1.0.Final.zip

    7. **WebSocket支持**:顺应Web通信技术的发展,JBoss AS 7.1.0引入了WebSocket协议的支持,允许双向实时通信,为富互联网应用提供了新的可能。 8. **改进的热部署**:在不中断服务的情况下,可以实现应用的热部署...

    Flex AS3笔记

    Flex与AS3概述 - **Flex**: 是一套开源框架和技术集合,用于构建跨浏览器、跨平台的应用程序。它由Adobe Systems开发,主要面向企业级应用开发,能够创建丰富的互联网应用程序(RIA)。 - **ActionScript 3 (AS3)**: ...

    Node-RED_PLC_Example:使用python与Allen Bradley PLC通信的Node-RED Web浏览器示例。 使用Raspberry Pi 2并使用pylogix和pycomm3库完成

    在本文中,我们将深入探讨如何使用Node-RED与Allen Bradley PLC进行通信,特别是在Raspberry Pi 2上。Node-RED是一种流行的低代码编程工具,它允许用户通过图形化界面连接不同的服务和设备,构建物联网(IoT)解决方案...

    openfire red5插件 sparkweb源码

    Red5服务器负责处理视频流的传输和存储,而SparkWeb客户端则在用户端处理视频展示和捕获,通过WebSocket或RTMP等协议与Openfire和Red5通信。 在实际应用中,开发者可以深入研究源码,了解Openfire与Red5的集成方式...

    SIPSYS-ES融合通信服务器.pdf

    - **服务器要求**:标准PC服务器,支持的操作系统包括Fedora Core 3/4、Red Hat Enterprise Linux AS 4等。 - **网络部署模式**:支持不同的网络部署模式,如局域网、广域网等。 - **兼容性**:与多种第三方产品兼容...

    Red Hat Linux AS4上安装Oracle 10gR2

    ### Red Hat Linux AS4上安装Oracle 10gR2 的详细步骤及注意事项 #### 一、概述 本文档详细介绍了如何在Red Hat Linux AS4操作系统上安装Oracle 10gR2 RAC (Real Application Clusters)。文档基于Vincent Chan在...

    as3 写的一个音乐服务器

    不过,通过Flash Media Server(FMS)或者Red5这样的开源Flash服务器,AS3可以用来编写服务器端代码。 音乐服务器可能包含以下几个关键组件: - **播放管理器**:负责处理播放控制,如播放、暂停、停止、快进、倒退...

    Red Hat Enterprise Linux 5 教程.doc

    三、 安装 Linux Red Hat Enterprise AS5 在安装 Linux Red Hat Enterprise AS5 中,需要选择自定义安装,然后选择“Red Hat Enterprise Linux 5”作为操作系统版本。在安装过程中,需要手动分区,选择虚拟机名称和...

    red5中使用remoteObject

    在Red5中使用RemoteObject是实现Flash客户端与服务器端通信的一种技术。Red5是一个开源的流媒体服务器,它支持实时消息协议(RTMP)、实时传输协议(RTSP)以及HTTP流等多种流媒体交互方式。RemoteObject是Adobe ...

    red5-flash:闪存组件

    3. **编写ActionScript代码**:在Flash环境中编写与Red5交互的AS代码,实现客户端的功能。 4. **测试与调试**:使用Flash Player或Red5自带的测试工具进行测试,确保功能正常。 5. **发布与部署**:将编译后的SWF...

    JBoss AS7教程

    JBoss Application Server 7(简称JBoss AS7)是Red Hat公司推出的一款开源Java EE应用服务器,它基于EAP(Enterprise Application Platform)的轻量级版本,提供了对Java EE 6规范的全面支持。本教程旨在帮助J2EE...

    RedHat_Linux_AS_3配置HA_Cluster实战

    【Red Hat Linux AS 3配置HA集群实战】 在IT领域,高可用性(HA)集群是一种重要的技术,它能够确保关键服务的连续性,避免单点故障。Red Hat Linux AS 3是Red Hat公司推出的企业级操作系统,支持构建HA集群以提供...

Global site tag (gtag.js) - Google Analytics