有时候客户端需要和服务器端进行通信,服务器端会有个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 }