一個(gè)基于Node.js的AMF實(shí)現(xiàn)
作者:ColorHook
用過AMF的人應(yīng)該知道這個(gè)東西不僅高效,而且極大地解除了服務(wù)器端和客戶端的代碼耦合度。今天恰巧發(fā)現(xiàn)github上有個(gè)基于node.js的AMF實(shí)現(xiàn),于是搞點(diǎn)代碼玩了一下。
用過AMF的人應(yīng)該知道這個(gè)東西不僅高效,而且極大地解除了服務(wù)器端和客戶端的代碼耦合度。今天恰巧發(fā)現(xiàn)github上有個(gè)基于node.js的AMF實(shí)現(xiàn),于是搞點(diǎn)代碼玩了一下,hoho~。下面是Flash通過AMF與node.js通信的一個(gè)例子:
首先定義服務(wù)器端的類和方法
- exports.sayHello = function( callback ){
- return 'Hello World';
- }
然后使用node.js創(chuàng)建一個(gè)server,把這個(gè)AMF服務(wù)跑起來。
- //定義端口,主機(jī),過期時(shí)間。
- var listenPort = 8001;
- var listenHost = 'localhost';
- var timeout = 5000;
- //包含對應(yīng)的服務(wù)器類
- var methods = require('./amf-methods');
- //包含amf的實(shí)現(xiàn)庫
- var server = require('../../node-amf/http-server');
- //啟動(dòng)服務(wù)
- 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
【編輯推薦】
責(zé)任編輯:陳貽新
來源:
colorhook.com