用过AMF的人应该知道这个东西不仅高效,而且极大地解除了服务器端和客户端的代码耦合度 。今天恰巧发现github上有个基于node.js的AMF实现,于是搞点代码玩了一下,hoho' 。下面是Flash通过AMF与node.js通信的一个例子:
首先定义服务器端的类和方法
- exports.sayHello = function( callback ){
- return Hello World;
- }
然后使用node.js创建一个server,把这个AMF服务跑起来 。
-
- var listenPort = 8001;
- var listenHost = localhost;
- var timeout = 5000;
-
-
- var methods = require(./amf-methods);
-
-
- var server = require(../../node-amf/http-server);
-
- server.start( listenPort, listenHost, methods, timeout );
接着Flash的呼叫AMF方式还是那一套:
- package {
- import flash.display.Sprite;
- import flash.net.NetConnection;
- import flash.net.Responder;
-
- public class NodeJS_AMF extends Sprite {
-
- protected var connection:NetConnection;
- private var responder:Responder;
- private var host:String = "http://localhost:8001/";
-
- public function NodeJS_AMF() {
- responder = new Responder(this.onResult, this.onFault);
- connection = new NetConnection();
- connection.connect(host);
- connection.call("sayHello", responder);
- }
-
- private function onResult(e:*):void{
- trace(e);
- }
- private function onFault(e:*):void{
- trace(e);
- }
-
- }
- }
have fun!
原文:http://www.colorhook.com/blog/?p=829