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

时间:2023-03-09 20:33:00
[ActionSprit 3.0] FMS客户端调用服务器端命令或方法

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

客户端as:

 import flash.net.NetConnection;
import flash.net.Responder;
import flash.events.NetStatusEvent; var responder:Responder = new Responder(getResult);
var nc:NetConnection = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,onStatus);
nc.connect("rtmp://localhost/HelloWorld");
nc.call("serverDo", responder, "FMS World");
function getResult(result:Object):void
{
trace("onReply received value: " + result);//onReply received value: Hello, FMS World!
}
function onStatus(e:NetStatusEvent):void
{
trace(e.info.code);
}

服务端asc:

 application.onConnect = function( client ) {

     // Define new client function for a nc.call().
client.serverDo = function( helloStr ) {
return "Hello, " + helloStr + "!";
} // Accept the connection.
application.acceptConnection( client );
}