浏览 3304 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-13
当你不仅仅只想用FLEX来做纯业务数据的管理时,或者当你的项目有视频,音频,多客户端数据或消息同步,数据即时共享,或者你要做网络游戏,互动社区等等更多要求时,学习FMS将刻不容缓,因为FMS是ADOBE为上面一些特定需求而量身定制的服务器,看名字大家都清楚,这里我贴一个应该是最简单的客户端调用FMS服务端函数的例子,比较类似于AJAX的请求与回调,有此经验,应该是一目了然.
客户端代码: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" horizontalAlign="center"> <mx:Script> <![CDATA[ import com.carlcalderon.arthropod.Debug;//导入Debug包 private var myNc:NetConnection;//定义一个连接对象 private static const RTMP_URL:String="rtmp://localhost/clientCallServer";//定义RTMP连接地址 //这里RTMP地址如果是在本地也可以写成rtmp:/clientCallServer,如果是非本地,应该写成rtmp://ip/clientCallServer //clientClassServer是你在FMS3安装目录applications目录下新建的一个文件夹名称,也是你的工程的名称,以后所有的东西都放在此目录下 private function sendMsg():void{//定义一个发送消息函数 myNc=new NetConnection();//实例化一个连接对象 myNc.connect(RTMP_URL);//连接到远程服务端 var callbackObject:Responder=new Responder(onResult);//定义回调响应对象 Debug.log(msg.text);//打印日志 myNc.call("serverCallFunction",callbackObject,msg.text); //调用服务器端serverCallFunction函数,并将返回结果传给callbackObject响应对象, //传给服务端serverCallFunction函数的参数为msg.text,这里只传了一个,可以传任意多个 } //定义回调函数 private function onResult(serverBackResult:*):void{ Debug.log("Server return msg:"+serverBackResult,Debug.BLUE); result.text=serverBackResult;//将服务端返回的结果绑定到result TextArea的控件上显示 msg.text="";//清空输入消息控制msg的值 try{ myNc.close();//操作完毕后关闭连接. }catch(error:Error){ Debug.log(error.message.toString(),Debug.GREEN); } } ]]> </mx:Script> <mx:Label text="Server response Result:"/> <mx:TextArea width="300" height="200" id="result"/> <mx:HBox> <mx:TextInput id="msg" width="300"/> </mx:HBox> <mx:HBox> <mx:Button label="send Message to Server" click="sendMsg();"/> </mx:HBox> </mx:Application>
服务器端代码:
(你要在服务器端你新建的工程目录下clientCallServer里新建一个main.asc文件,然后写在此文件里就行了,就行了,别忘了,代码敲定之后,启动FMS服务器,我前面有文章讲到,这里就不再啰嗦了)
application.onConnect=function(client){ trace("come in"); client.serverCallFunction=function(clientParameter){ trace(clientParameter+" come in"); return "call success! "+clientParameter; } application.acceptConnection(client); } /* Client.prototype.serverCallFunction=function(clientParameter){ trace(clientParameter+"come in");; return "call success and return back!"; } */
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |