AMF仅适用于Flash吗?

时间:2009-09-17 20:59:35

标签: amf

我是AMF的新手,我了解到AMF应该非常快。

我想知道是否应该将它用于我的所有网络服务。 没有Flash VM,它仍然很快吗?

3 个答案:

答案 0 :(得分:3)

这个问题可能有两个答案。一个答案是关于AMF作为协议,另一个答案是关于实现。

作为协议,AMF产生的小输出会消除大部分冗余。与类似的SOAP实现相比,AMF将使用更少的网络流量字节。在某些应用中,这可以被认为是“更快”。

如果编码AMF的实现很快,AMF也可以很快。 Actionscript VM可以很快地对其进行编码。但是,您声明您将不使用Flash VM。在这种情况下,您可能会考虑使用Python。对于Python,有两个开源选择:PyAmf和AmFast。据报道,AmFast比PyAmf快十八(18)倍用于编码目的。

所以最终的答案是:确定你想要什么样的“快速”,比较你可以选择的编码器的功能。

答案 1 :(得分:2)

AMF是专门为Actionscript设计的,但它只是一种基于SOAP的二进制格式。您可以在任何地方使用它,但客户端和服务器都需要了解AMF。

有许多不同的服务器端语言可以many libraries来理解AMF,但是我不太确定除了Flash之外你还想在客户端使用AMF。

答案 2 :(得分:1)

AMF的速度很快,与您可以使用的其他格式相比,它是:

  • 更小,因此通过网络传输的响应时间比在更大的格式中更少(无论您使用的是AMF,都会影响到您),
  • 更接近客户端的原生格式,因此客户端的解析工作较少(这主要是Flash Player的一个优点,尽管它仍然可能比任何客户端的本机形式更接近于XML)。

将AMF的性能与Flex使用的其他协议/格式进行了很好的比较:http://www.jamesward.com/census2/,但我没有看到涵盖任何其他AMF客户端性能的比较(甚至James Ward's own pure JavaScript AMF decoder )。