SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
用AMF來搭起美麗的橋樑
高見龍
高見龍
http://blog.eddie.com.tw
aquarianboy@ptt
eddie@adcube.com.tw
aquarianboy@plurk
eddiekao@facebook
AMF = Action Message Format
neither “A”dobe nor “A”ctionscript(雖然它是由Adobe制定的)
wiki上的解釋
Action Message Format (AMF) is a binary format used to
serialize ActionScript objects. It is used primarily to
exchange data between an Adobe Flash application and a remote
service, usually over the internet.
支援各種程式語言
.NET - FluorineFx (LGPL)
PHP - AMFPHP, Zend_Amf, CakeAMFPHP
Python - PyAMF, DjangoAMF
Perl - AMF::Perl
Ruby - RubyAMF
...
其它內容可參閱 http://en.wikipedia.org/wiki/Action_Message_Format
PHP
1. 下載AMFPHP(目前是1.9版)
http://amfphp.sourceforge.net/
2. 把下載下來的壓縮檔解開,放在自己找得到的路徑就行了
例如: http://127.0.0.1/test/amfphp/
3. 順利的話應該可以看到一個Service Browser(flex寫的)
連結: http://127.0.0.1/test/amfphp/browser
4. 在AMF gateway上新增一個服務(放到services資料夾裡)
<?php
class callme
{
function callmeplease($text)
{
return $text;
}
}
5. 重新整理service browser,應該可看到寫寫新增的內容
中文支援問題:
開啟AMFPHP資料夾的gateway.php,應該可以找到一段跟字碼有關的:
$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");
修改成:
$gateway->setCharsetHandler("utf8_decode", "UTF-8", "UTF-8");
或是如果你的PHP模組裡有iconv的話也可以這樣改:
$gateway->setCharsetHandler("iconv","UTF-8","UTF-8");
參考資料:
http://blog.eddie.com.tw/2008/10/12/amfphp-tutorial
使用方法
Django
1. 下載PyAMF(Stable版本 0.51)
http://pyamf.org/community/download.html
2. 解壓縮後,進到資料夾裡執行setup.py或是ez_install進行安裝
3. 為展示目的,建立一個新的django project
參考資料 http://www.eddie.com.tw/course/index.php/Django_index
4. 為展示目的,建立一個新的django app,準備新增AMF service
from pyamf.remoting.gateway.django import DjangoGateway
def amfdemo(req, text):
	 return 'hello from pyamf : ' + text
	
services = {
'callme.callmeplease': amfdemo,
}
AMFGateway = DjangoGateway(services, debug=True)
5. 修改urls.conf
url(r'^gateway/$', 'demoamf.dddd.views.AMFGateway')
使用方法
Ruby on Rails
1. 使用RubyAmf plugin
http://github.com/victorcoder/rubyamf_plugin
2. 為展示目的,建立一個新的RoR project,並進到project中安裝plugin(以rails 2.3.8為例)
script/plugin install git://github.com/victorcoder/rubyamf_plugin.git
3. 安裝成功的話,可看見rubyamf的logo
http://127.0.0.1:3000/rubyamf/gateway/
4. 為展示目的,建立一個controller,並準備新增AMF service
class DemoamfController < ApplicationController
def callmeplease
render :amf => "hello from rubyamf : " + params[0]
end
end
5. 預設的呼叫方法為ControllerName.ActionName
例如: DemoamfController.callmeplease
參考資料:
http://blog.eddie.com.tw/2010/03/18/rubyamf
使用方法
Thank You!
2010/10/27
ADcube Network, Inc.
TEL +886-2-2370-0085 ext.501
FAX +886-2-2370-0125
9F., No.43, Sec. 1, Chongqing S. Rd., Zhongzheng District,
Taipei City 100, Taiwan (R.O.C.)
Welcome to visit http://www.adcube.com.tw for more information!

Weitere ähnliche Inhalte

Ähnlich wie AMF

从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型Jackson Tian
 
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCampimShining @DevCamp
 
Regular expression
Regular expressionRegular expression
Regular expressioncri fan
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍haozes
 
Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Harvey Zhang
 
Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發建興 王
 
廖雪峰 Saa s ovp
廖雪峰 Saa s ovp廖雪峰 Saa s ovp
廖雪峰 Saa s ovpdrewz lin
 
Flex 使用經驗談
Flex 使用經驗談Flex 使用經驗談
Flex 使用經驗談Ticore Shih
 
Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Chui-Wen Chiu
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发mysqlops
 
Metro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' ViewMetro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' ViewEric ShangKuan
 
Openshift by mtchang
Openshift by mtchangOpenshift by mtchang
Openshift by mtchangChang Mt
 
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定啟動 Laravel 與環境設定
啟動 Laravel 與環境設定Shengyou Fan
 
Flash media server 开发经验谈 沈先彬
Flash media server 开发经验谈 沈先彬Flash media server 开发经验谈 沈先彬
Flash media server 开发经验谈 沈先彬FLASH开发者交流会
 
makefile20141121
makefile20141121makefile20141121
makefile20141121Kevin Wu
 
腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介areyouok
 
Introduction To Direct Show
Introduction To Direct ShowIntroduction To Direct Show
Introduction To Direct Showguestce3937
 

Ähnlich wie AMF (20)

从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
 
Regular expression
Regular expressionRegular expression
Regular expression
 
JSFL share
JSFL shareJSFL share
JSFL share
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍
 
Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化
 
Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發
 
Xmpp
XmppXmpp
Xmpp
 
廖雪峰 Saa s ovp
廖雪峰 Saa s ovp廖雪峰 Saa s ovp
廖雪峰 Saa s ovp
 
Flex 使用經驗談
Flex 使用經驗談Flex 使用經驗談
Flex 使用經驗談
 
Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
 
Metro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' ViewMetro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' View
 
Openshift by mtchang
Openshift by mtchangOpenshift by mtchang
Openshift by mtchang
 
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定啟動 Laravel 與環境設定
啟動 Laravel 與環境設定
 
Flash media server 开发经验谈 沈先彬
Flash media server 开发经验谈 沈先彬Flash media server 开发经验谈 沈先彬
Flash media server 开发经验谈 沈先彬
 
makefile20141121
makefile20141121makefile20141121
makefile20141121
 
network2
network2network2
network2
 
腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介
 
Introduction To Direct Show
Introduction To Direct ShowIntroduction To Direct Show
Introduction To Direct Show
 

Mehr von Eddie Kao

Rails girls in Taipei
Rails girls in TaipeiRails girls in Taipei
Rails girls in TaipeiEddie Kao
 
Rails Girls in Taipei
Rails Girls in TaipeiRails Girls in Taipei
Rails Girls in TaipeiEddie Kao
 
Let's Learn Ruby - Basic
Let's Learn Ruby - BasicLet's Learn Ruby - Basic
Let's Learn Ruby - BasicEddie Kao
 
iOS app development and Open Source
iOS app development and Open SourceiOS app development and Open Source
iOS app development and Open SourceEddie Kao
 
from Ruby to Objective-C
from Ruby to Objective-Cfrom Ruby to Objective-C
from Ruby to Objective-CEddie Kao
 
Code Reading
Code ReadingCode Reading
Code ReadingEddie Kao
 
CreateJS - from Flash to Javascript
CreateJS - from Flash to JavascriptCreateJS - from Flash to Javascript
CreateJS - from Flash to JavascriptEddie Kao
 
May the source_be_with_you
May the source_be_with_youMay the source_be_with_you
May the source_be_with_youEddie Kao
 
Why I use Vim
Why I use VimWhy I use Vim
Why I use VimEddie Kao
 
There is something about Event
There is something about EventThere is something about Event
There is something about EventEddie Kao
 
Flash Ecosystem and Open Source
Flash Ecosystem and Open SourceFlash Ecosystem and Open Source
Flash Ecosystem and Open SourceEddie Kao
 
Happy Programming with CoffeeScript
Happy Programming with CoffeeScriptHappy Programming with CoffeeScript
Happy Programming with CoffeeScriptEddie Kao
 
Ruby without rails
Ruby without railsRuby without rails
Ruby without railsEddie Kao
 
CoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-TuesdayCoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-TuesdayEddie Kao
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScriptEddie Kao
 
3rd AS Study Group
3rd AS Study Group3rd AS Study Group
3rd AS Study GroupEddie Kao
 
iOS Game Development with Cocos2d
iOS Game Development with Cocos2diOS Game Development with Cocos2d
iOS Game Development with Cocos2dEddie Kao
 

Mehr von Eddie Kao (20)

Rails girls in Taipei
Rails girls in TaipeiRails girls in Taipei
Rails girls in Taipei
 
Rails Girls in Taipei
Rails Girls in TaipeiRails Girls in Taipei
Rails Girls in Taipei
 
Let's Learn Ruby - Basic
Let's Learn Ruby - BasicLet's Learn Ruby - Basic
Let's Learn Ruby - Basic
 
iOS app development and Open Source
iOS app development and Open SourceiOS app development and Open Source
iOS app development and Open Source
 
Vim
VimVim
Vim
 
from Ruby to Objective-C
from Ruby to Objective-Cfrom Ruby to Objective-C
from Ruby to Objective-C
 
Code Reading
Code ReadingCode Reading
Code Reading
 
CreateJS - from Flash to Javascript
CreateJS - from Flash to JavascriptCreateJS - from Flash to Javascript
CreateJS - from Flash to Javascript
 
May the source_be_with_you
May the source_be_with_youMay the source_be_with_you
May the source_be_with_you
 
Why I use Vim
Why I use VimWhy I use Vim
Why I use Vim
 
There is something about Event
There is something about EventThere is something about Event
There is something about Event
 
Flash Ecosystem and Open Source
Flash Ecosystem and Open SourceFlash Ecosystem and Open Source
Flash Ecosystem and Open Source
 
Happy Programming with CoffeeScript
Happy Programming with CoffeeScriptHappy Programming with CoffeeScript
Happy Programming with CoffeeScript
 
Ruby without rails
Ruby without railsRuby without rails
Ruby without rails
 
CoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-TuesdayCoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-Tuesday
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
API Design
API DesignAPI Design
API Design
 
測試
測試測試
測試
 
3rd AS Study Group
3rd AS Study Group3rd AS Study Group
3rd AS Study Group
 
iOS Game Development with Cocos2d
iOS Game Development with Cocos2diOS Game Development with Cocos2d
iOS Game Development with Cocos2d
 

AMF

  • 3.
  • 4. AMF = Action Message Format neither “A”dobe nor “A”ctionscript(雖然它是由Adobe制定的)
  • 5. wiki上的解釋 Action Message Format (AMF) is a binary format used to serialize ActionScript objects. It is used primarily to exchange data between an Adobe Flash application and a remote service, usually over the internet.
  • 6. 支援各種程式語言 .NET - FluorineFx (LGPL) PHP - AMFPHP, Zend_Amf, CakeAMFPHP Python - PyAMF, DjangoAMF Perl - AMF::Perl Ruby - RubyAMF ... 其它內容可參閱 http://en.wikipedia.org/wiki/Action_Message_Format
  • 7. PHP
  • 8. 1. 下載AMFPHP(目前是1.9版) http://amfphp.sourceforge.net/ 2. 把下載下來的壓縮檔解開,放在自己找得到的路徑就行了 例如: http://127.0.0.1/test/amfphp/ 3. 順利的話應該可以看到一個Service Browser(flex寫的) 連結: http://127.0.0.1/test/amfphp/browser 4. 在AMF gateway上新增一個服務(放到services資料夾裡) <?php class callme { function callmeplease($text) { return $text; } } 5. 重新整理service browser,應該可看到寫寫新增的內容 中文支援問題: 開啟AMFPHP資料夾的gateway.php,應該可以找到一段跟字碼有關的: $gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1"); 修改成: $gateway->setCharsetHandler("utf8_decode", "UTF-8", "UTF-8"); 或是如果你的PHP模組裡有iconv的話也可以這樣改: $gateway->setCharsetHandler("iconv","UTF-8","UTF-8"); 參考資料: http://blog.eddie.com.tw/2008/10/12/amfphp-tutorial 使用方法
  • 10. 1. 下載PyAMF(Stable版本 0.51) http://pyamf.org/community/download.html 2. 解壓縮後,進到資料夾裡執行setup.py或是ez_install進行安裝 3. 為展示目的,建立一個新的django project 參考資料 http://www.eddie.com.tw/course/index.php/Django_index 4. 為展示目的,建立一個新的django app,準備新增AMF service from pyamf.remoting.gateway.django import DjangoGateway def amfdemo(req, text): return 'hello from pyamf : ' + text services = { 'callme.callmeplease': amfdemo, } AMFGateway = DjangoGateway(services, debug=True) 5. 修改urls.conf url(r'^gateway/$', 'demoamf.dddd.views.AMFGateway') 使用方法
  • 12. 1. 使用RubyAmf plugin http://github.com/victorcoder/rubyamf_plugin 2. 為展示目的,建立一個新的RoR project,並進到project中安裝plugin(以rails 2.3.8為例) script/plugin install git://github.com/victorcoder/rubyamf_plugin.git 3. 安裝成功的話,可看見rubyamf的logo http://127.0.0.1:3000/rubyamf/gateway/ 4. 為展示目的,建立一個controller,並準備新增AMF service class DemoamfController < ApplicationController def callmeplease render :amf => "hello from rubyamf : " + params[0] end end 5. 預設的呼叫方法為ControllerName.ActionName 例如: DemoamfController.callmeplease 參考資料: http://blog.eddie.com.tw/2010/03/18/rubyamf 使用方法
  • 13. Thank You! 2010/10/27 ADcube Network, Inc. TEL +886-2-2370-0085 ext.501 FAX +886-2-2370-0125 9F., No.43, Sec. 1, Chongqing S. Rd., Zhongzheng District, Taipei City 100, Taiwan (R.O.C.) Welcome to visit http://www.adcube.com.tw for more information!