如何使用 Flash 实现 Comet

Posted

技术标签:

【中文标题】如何使用 Flash 实现 Comet【英文标题】:How to achieve Comet using Flash 【发布时间】:2010-12-15 09:22:57 【问题描述】:

Comet(又名服务器推送)如何与 Flash 程序一起使用?

服务器端同样需要什么? 这需要任何定制的服务器还是普通的 IIS 或 Apache 都需要?

也是Juggernaut的一个例子 基于彗星?它是如何实现彗星的?

【问题讨论】:

想要将结果从 Web 服务器多播到所有连接的 Flash 客户端? comet 或远程处理如何提供帮助? 通过查看与我的答案相关联的教程示例? 【参考方案1】:

假设您在this article 中谈论彗星,您可以使用URLLoader 类来实现它。在服务器端,您可以使用与普通 AJAX 应用程序(如 jsp、php、asp 等)一起使用的任何技术。我记得在某处读到 Flash 会在 30 秒后关闭 URLLoader 连接 - 您应该在实现 long 时考虑到这一点投票。

【讨论】:

【参考方案2】:

Flash 有一个更大更好的 Comet 替代方案 - 它使用 rtmp 进行“远程处理”!

您的 Flash 客户端可以与一整套语言和服务器进行对话; google haxe, rtmpy, rtmpd, red5 对于一些免费和免费的。

haxe 教程之一是...chat client and server。

【讨论】:

【参考方案3】:

不确定你想要什么,但你可以在客户端和服务器之间建立一个开放的连接。

参见this (flash client),例如this (php socket server)

【讨论】:

是的,类似的东西。我们需要的不是不断地轮询服务器以获取数据。而是服务器应该在更新时将数据推送到客户端。 您可以使用套接字。 Flash 有一个 XMLSocket 类,它比普通的 Socket livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/… 更方便 使用套接字的主要问题是客户端防火墙可能会首先阻止建立套接字连接 - 如果您无法预测这种情况发生在您的预期的用户群,您将不得不使用长轮询。 我个人更喜欢 Socket 类,因为它提供了更多选项。【参考方案4】:

Juggernaut 2 使用Socket.IO,它可以在任何浏览器或移动设备中实现实时更新。它将默认使用 html5 WebSockets 并回退到 Flash、AJAX 长轮询等。

【讨论】:

以上是关于如何使用 Flash 实现 Comet的主要内容,如果未能解决你的问题,请参考以下文章

Comet/Reverse AJAX 的现代实现如何工作?任何稳定的 C# WCF 或 ASP.NET 实现?

如何将 Comet 与 Spring MVC 一起使用?

Libevent + Comet(长轮询/Http-Stream)

Comet 的客户端技术

GWT 的 Comet 实现

可以为 Xmpp PubSub 或 Comet 实现使用超过 65535 个端口吗?