[ActionSprit 3.0] FMS客户端调用服务器端命令或方法

有时候客户端需要和服务器端进行通信,服务器端会有个main.asc文件(当然,文件名可以自己定义),这个就是服务器端程序,是在服务器上执行的,你可以用trace调试,trace的内容会在管理服务器的页面的View Applications > Live Logs选项看到,管理服务器页面C:Program FilesAdobeFlash Media Server 4.5 oolsfms_adminConsole.htm,但是需注意的是,每当服务器端main.asc修改后一定要记得reload或者unload一下,或者去tools文件夹双击StopServerService.bat,否则不会生效,unload会把窗口关闭,有客户端连接的时候还会自动打开,reload和unload按钮均在服务器管理页面Live Logs一栏最后位置。接下来看简单示例:

客户端as:

 1 import flash.net.NetConnection;
 2 import flash.net.Responder;
 3 import flash.events.NetStatusEvent;
 4 
 5 var responder:Responder = new Responder(getResult);
 6 var nc:NetConnection = new NetConnection();
 7 nc.addEventListener(NetStatusEvent.NET_STATUS,onStatus);
 8 nc.connect("rtmp://localhost/HelloWorld");
 9 nc.call("serverDo", responder, "FMS World");
10 function getResult(result:Object):void
11 {
12     trace("onReply received value: " + result);//onReply received value: Hello, FMS World!
13 }
14 function onStatus(e:NetStatusEvent):void
15 {
16     trace(e.info.code);
17 }

服务端asc:

 1 application.onConnect = function( client ) {
 2 
 3     // Define new client function for a nc.call().
 4     client.serverDo = function( helloStr ) {
 5         return "Hello, " + helloStr + "!";
 6     }
 7         
 8     // Accept the connection.
 9     application.acceptConnection( client );
10 }
原文地址:https://www.cnblogs.com/frost-yen/p/4648394.html