【问题标题】:(How) Can you implement snail HTTP (comet/long lived connections) in Flash?(如何)你能在 Flash 中实现蜗牛 HTTP(彗星/长寿命连接)吗?
【发布时间】:2008-12-14 12:24:08
【问题描述】:
我对 Web 应用程序的流式数据非常感兴趣。我已经尝试了一些 javascript 库,但是黑客和浏览器不兼容让我发疯了! HTML5 有望将流数据标准化,但在那之前,我希望我可以借助 Flash 使其在所有浏览器中都能正常工作。不幸的是,我对 Flash 提供的所有功能都不是很熟悉。
我在 Flash 8 中尝试过 loadVariables.onData,但它不支持流数据。数据仅在请求完成后可用。有什么方法可以在每次返回新数据时调用函数?
【问题讨论】:
标签:
flash
streaming
comet
【解决方案1】:
虽然我不熟悉你在做什么,但听起来你应该看看URLStream。当您加载 Flash 可以直观理解的内容(MP3、JPG、SWF 等)时,您通常会使用 Loader,然后您也可以使用 progress events,但我猜您正在谈论将任意数据加载到 ByteArray 中,并且 URLStream 应该为您提供所需的所有低级访问权限。
假设您使用的是 AS3 和 Flash Player 9+。我不会发誓,但我很确定你正在寻找的东西在 AS2 下是不可能的。
【解决方案2】:
如果您只想流式传输单个文件,请按照 fenomas 的建议使用 URLStream。如果您想要一个可以发送和接收数据的开放连接,您正在寻找的类是XMLSocket。应该适用于 Flash 5 之后的任何内容。
【解决方案3】:
正如 Moss Collum 和 fenomas 所建议的,有URLStream 和XMLSocket。但是,如果您想在二进制级别上与服务器交互,您可以使用 Socket 对象读取和写入字节。
请记住,任何网络通信都受制于 Flash Player 非常严格的安全模型。您可能会发现学习这方面的时间非常值得。