我实现了一个简单的Flex应用程序,它试图通过WebSocket协议连接到服务器。在FlashBuilder4.6调试器中运行应用程序一切正常。所以我在我的服务器上安装了这个应用程序,过了一段时间后我得到了错误#2048#2048似乎是一个有关安全的错误。
服务器提供了这个crossdomain.xml:
更新
<?xml version="1.0" encoding="UTF-8" ?>
<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd">
<allow-access-from domain="*" to-ports="*" />
<site-control permitted-cross-domain-policies="master-only" />
</cross-domain-policy>
编辑:通过调用提供
Security.loadPolicyFile('http://myserver:8081/crossdomain.xml');
我可以在web服务器日志中看到客户端加载了它
我使用AS3WebSocket作为Flex的WebSocket实现。
这就是我设置WebSocket对象的方式:
websocket = new WebSocket(url, "*", 'dummy', 5000);
// adding several event handler ...
websocket.connect();
浏览器通过连接到服务器
http://myserver:8081
url参数包含
ws://myserver:8081/data
为什么它可以在本地使用Flash Builder而不在我的服务器上工作?我错过了什么?
<allow-access-from domain="*" to-ports="*" />
省略"允许的跨域策略="none"位。
现在就试试吧。让它在一切正常工作时更加安全。
请检查防火墙安全[对端口的内部和外部访问]这可能是导致问题的原因之一。
请查看以下链接:-http://flexhappycoding.blogspot.in
我完成了这项工作。不知何故,我错过了我需要一个特殊的策略服务器在端口843上运行套接字策略的信息,该服务器通过TCP提供策略文件。