【问题标题】:How to create flash socket policy files to open port 843 for flash application in Apache server run on windows如何创建 Flash 套接字策略文件以在 Windows 上运行的 Apache 服务器中为 Flash 应用程序打开端口 843
【发布时间】:2015-07-15 20:01:42
【问题描述】:
我正在创建一个实时应用程序,并且遇到了 HTML5 web-socket,它是 ajax 长轮询的理想技术。但是不能保证 web-socket 可以在每个浏览器中运行。我用 IE-8 和 IE-9 测试过,这些版本不支持。
我发现 web-socket-js 对于不支持现代 web-socket 的浏览器来说似乎是一个完美的后备方案。它使用闪存来执行任务。但是从 flash 9 开始,现在需要使用 flash 套接字策略文件访问端口 843 的 flash 应用程序。我在这篇文章中研究了setting up a flash socket policy,但找不到适用于 Windows 中安装的 Apache 的解决方案。我应该如何创建这个策略文件,我应该把它放在哪里。我很困惑。
【问题讨论】:
标签:
actionscript-3
sockets
flash
cross-domain-policy
【解决方案1】:
策略文件规定 .swf 文件可以从哪些主机访问服务器上的服务。策略文件服务器是在端口 843 上托管主策略文件(XML 文档)的 TCP 服务器。Flash Player 首先尝试访问此端口上的主策略文件,但如果找不到策略文件,则请求用于尝试获取数据的端口上的文件。
这意味着 Flash Player 实际上发出 2 个网络请求。默认情况下,一个转到端口 843。如果该请求超时(在 3 秒内),那么它会向您要连接的端口发出第二次请求(假设它是端口 80)。
如果我没记错的话,请求是向以下 URL 发出的 -
主机名:端口//crossdomain.xml
在您的情况下,我认为这可能只是将主策略文件放在 Web 服务器的根目录中的问题。 Apache 使用 .conf 文件中的 DocumentRoot 指令来标识此目录。