无法连接到同一域中的套接字

时间:2010-12-30 20:56:49

标签: flex flash security sockets cross-domain

我有一个Flex Web应用程序(编译为常规SWF),它试图连接到自己服务器上的(二进制,而不是XML)套接字。因此,如果swf位于example.com/app.swf,则套接字为example.com:12869

这应该是可能的,AFAIK,但是当我尝试连接时,我收到一个安全错误,指出example.com/app.swf无法访问example.com:12869

即使不需要,我也有一个包含

crossdomain.xml文件
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>

但它没有帮助。

我该怎么办?

您可以看到应用here

2 个答案:

答案 0 :(得分:1)

您可以使用my Apache 2 module - 它会侦听端口843并回答套接字策略请求

答案 1 :(得分:0)

问题是默认情况下Flash会从套接字请求策略,这意味着它会将<policy-file-request/>发送到套接字 - 如果您有可能将其添加到服务器实现中,您可以查看如何that guy解决了同样的问题。

您也可以在启动套接字连接之前使用Security.loadPolicyFile("http://axa3.axastudios.nl/crossdomain.xml")强制它先加载您的策略。我不是100%确定这是否适用于Socket连接,docs(搜索“套接字策略文件”)有点令人困惑。

相关问题