发布网友 发布时间:2022-04-24 04:59
共1个回答
热心网友 时间:2023-05-19 01:30
AMF(Action Message Format)是Flash与服务端通信的一种常见的二进制编码模式,其传输效率高,可以在HTTP层面上传输。
很多Flash WebGame都采用这样的消息格式。该格式通常与Adobe的RTMP结合使用,以建立连接和控制命令以传输流媒体。
在这种情况下,AMF数据封装在一个块中,该块具有一个标头,该标头定义了诸如消息长度和类型(无论是“ ping”,“ command”还是媒体数据)之类的内容。
格式分析
AMF是随Flash Player 6引入的,此版本称为AMF0。直到Flash Player 9和ActionScript 3.0发行时,它才保持不变,当时新的数据类型和语言功能提示进行更新,称为AMF3。
Flash Player 10添加了在2013年1月修订的规范中记录的矢量和字典数据类型。
Adobe Systems在2007年12月发布了AMF二进制数据协议规范,并宣布它将支持开发人员社区将该协议提供给每个主要服务器平台。
以下amf数据包用于在已定义的Adobe / Macromedia容器或传输器(例如Flash Video或Real Time Messaging Protocol)之外传输消息。
支持AMF的平台
许多服务器端语言和技术以应用程序开发人员必须安装和集成的库和服务的形式支持各种AMF协议。
1、ColdFusion -
2、Haxe - Haxe Remoting hxformat
3、Java - Adobe BlazeDS, Adobe LiveCycle Data Services (formerly known as Flex Data Services);
Exadel Flamingo, RED 5, Cinnamon, OpenAMF, Pimento, Granite, WebORB for Java
4、.NET - WebORB for .NET, FluorineFx (LGPL), DotAmf (MS-PL), AMF.NET (development stopped)
5、PHP - AmfPHP, SabreAMF, WebORB for PHP, Zend_Amf, php-amf3 extension, Baguette AMF(php extension)
6、Python - amfast
7、Perl - AMF::Perl, Storable::AMF, AMF::Connection
8、Curl - Curl Data Services
9、Ruby - RubyAMF, WebORB for Rails, Rocket AMF
10、Erlang-Erlang-AMF
11、ActionScript-FlashPlayerByteArray(in-built),CourseVectorLibrary
12、JavaScript-JSAMFCourseVectorLibraryCourseVector.minerva
13、Lua-lua-amf3
14、ABAP-ABAPAMF(earlystage)
15、Delphi-kbmMW(extensiveAMF0/AMF3support)
16、iOS-CocoaAMF
17、PowerShell-PowershellAMF