AS3中的实时更新和推送数据

时间:2011-08-13 06:33:25

标签: flash flex actionscript air real-time

我想为我的Flash应用程序进行实时更新。而不是每刷新30秒,我更喜欢推技术。在Actionscript 3中推送数据的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

实现实时更新有两种流行的选择:套接字和RTMP。每种方法都有优点和缺点,但主要的决定因素通常是您的服务器基础架构。

<强>套接字

套接字提供最低级别的功能。这意味着您需要在客户端和服务器上的代码中实现协议。但是,这种方法的最大优点是可以使用它来支持任何支持TCP / IP套接字的服务器端技术。您可以使用您喜欢的任何格式发送数据,但最有效的方法是使用ActionScript Message Format(AMF)以二进制格式传输数据。

<强> RTMP

Real-Time Media Protocol是Adobe开发的协议,由Flash Player本机实现。使用RTMP需要一个可以支持该协议的特定服务器。有专有的解决方案,以及免费的解决方案。使用RTMP的优点是许多协议已经实现,共享数据可以像设置共享对象的值一样简单 - 协议处理幕后的数据传输。 RTMP使用AMF对消息进行编码,因此带宽使用效率很高。该协议还支持通过HTTP进行“隧道传输”,这意味着当无法进行RTMP连接时,它会转向通过HTTP进行轮询。

以下是一些用于实施RTMP和/或AMF的服务器端解决方案:

  1. FluorineFX(。Net)
  2. WebORB(。Net,Java,PHP)
  3. Red5(Java)
  4. Adobe Flash Media Server(Java)
  5. This entry on Wikipedia更详细地描述了RTMP协议和可用服务器。