孚优阁

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 997|回复: 3

Red5流媒体RTMP服务端和Flash方法相互调用的示例代码

[复制链接]

16

主题

16

帖子

100

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
100
发表于 2022-8-17 16:35:05 | 显示全部楼层 |阅读模式
服务端代码
  • package org.zyf.myServer;//需要修改  
  • import org.red5.server.adapter.ApplicationAdapter;  
  • import org.red5.server.api.IConnection;  
  • import org.apache.commons.logging.Log;  
  • import org.apache.commons.logging.LogFactory;  
  • import org.red5.server.api.Red5;  
  • import org.red5.server.api.service.IServiceCapableConnection;  
  • public class Application extends ApplicationAdapter {  
  •       
  •     protected static Log log = LogFactory.getLog(Application.class.getName());  
  •     public String CallServer(String str){      
  •         System.out.println("user connected.param= " + str );   
  •          IConnection myConn=Red5.getConnectionLocal();  
  •         if (myConn instanceof IServiceCapableConnection)  
  •         {  
  •             //转发消息  
  •             IServiceCapableConnection sc = (IServiceCapableConnection) myConn;  
  •             sc.invoke("CallBack", new Object[]{"wellcome"});            
  •         }  
  •         return "hellow";  
  •     }  
  •     public boolean appConnect(IConnection conn, Object[] params) {  
  •         // Trigger calling of "onBWDone", required for some FLV players  
  •          
  •         if (params == null || params.length == 0) {  
  •             log.debug("user unknown connected");  
  •             // NOTE: "rejectClient" terminates the execution of the current method!  
  •             //rejectClient("No username passed.");  
  •         }  
  •         else  
  •         {  
  •             log.debug("user "+params[0]+" connected");  
  •         }  
  •    
  •         return super.appConnect(conn, params);  
  •     }  
  • }
Flash代码:
  • //import flash.net.Responder;   
  • NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;  
  • var nc:NetConnection = new NetConnection();  
  • nc.addEventListener(NetStatusEvent.NET_STATUS,StatusHander);  
  • nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR,ErroHander);  
  • nc.connect("rtmp://192.168.10.10/myServer");  
  • trace("connect..");  
  • var obj:Object = new Object();  
  • function StatusHander(event:NetStatusEvent):void  
  • {  
  •     var info:Object = event.info;  
  •       
  •     trace("StatusHander");  
  •     switch(info.code)  
  •     {  
  •         case "NetConnection.Connect.Success":  
  •             trace("Sucess");  
  •             nc.client = this;              
  •             nc.call("CallServer",new Responder(Result),"msg=NC.call");  
  •             break;  
  •         case "NetConnection.Connect.Failed":  
  •             trace("Failed");  
  •             break;  
  •         default:  
  •             trace(info.code);  
  •             break;  
  •     }  
  • }  
  • var a:int=0;  
  • function Result(obj:Object):void   
  •         {   
  •                 trace("i got it: "+obj);   
  •         }   
  • function ErroHander(event:AsyncErrorEvent):void  
  • {  
  •     trace("Erro:");  
  • }  
  • function CallBack(str:String):String  
  • {  
  •     trace("CallBack()"+str);  
  •     return str+" len = "+ str.length;  
  • }  
  • //stop();
输出:
connect..
StatusHander
Sucess
CallBack()wellcome.
i got it: hellow
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|源码|孚优阁

GMT+8, 2024-4-30 17:05 , Processed in 0.088091 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表