PHP <---> FLASH持久连接(数据流式传输)
Posted
技术标签:
【中文标题】PHP <---> FLASH持久连接(数据流式传输)【英文标题】:PHP <---> FLASH persistent connection (data streaming) 【发布时间】:2012-03-11 01:04:31 【问题描述】:背后的想法是一个与 php 服务器交互的多人浏览器游戏。
现在它的工作原理是这样的: 浏览器每秒都会对 php 脚本进行 ajax 调用,该脚本会检查所有内容并返回响应。 总而言之,它运行良好,但问题是浏览器会在一段时间后超载(因为成千上万的 ajax 请求),并且无法再玩了。 1+秒的延迟也差不多。
我的想法是有一个简单的闪存像素,它将与服务器进行双向通信。 例如:
用户的行为和行为 javascript 函数使用一些参数调用 flash 像素 flash 向服务器发送请求 服务器向所有其他 Flash 侦听器(在线用户)“宣布”此操作 收到来自服务器的响应 界面更新类似的东西。
发送和接收的数据可以是字符串(json)或任何其他。
我了解了不同的 RTMP 服务器以及smartfoxserver.com。购买它们中的任何一个都不是问题,但在我看来,它们为我的需求提供了太多(音频视频流等)。它们也不是基于 PHP 的。因此,使用 RTMP 服务器需要它在需要时启动 PHP 脚本。在用户可以毫无延迟地玩之前,这也不是问题。
如果解决方案是安装 RTMP 服务器,PHP 中有一个“RTMP client”,但遗憾的是没有太多关于它的信息/文档。
无论如何,如果没有找到解决方案,我将使用相同的 Flash“像素”,它将通过 PHP AMF 发送请求和接收响应。它会有小的延迟并且不会持久,但它应该可以解决部分问题。
也许你们中的一些人已经遇到了这个问题并找到了解决方案或任何其他关于如何实现这一点的想法。
谢谢
P.S.Google Wave 在他们的交互式聊天中使用了类似的东西,当一些用户正在打字而另一个用户可以实时看到这一点时。
【问题讨论】:
【参考方案1】:您可以在 AS3 中使用XMLSocket 来建立socket connection with the PHP server。
【讨论】:
【参考方案2】:rtmfp 专为您的需要而设计。 http://www.adobe.com/products/flash-media-enterprise/rtmfp-faq.html
【讨论】:
以上是关于PHP <---> FLASH持久连接(数据流式传输)的主要内容,如果未能解决你的问题,请参考以下文章
当我用<iframe>调用flash动画时,怎样可以让php程序自动加载<object>标签以显示动画