我有我想连接到服务器的Flash客户端。 两者都使用本地主机和端口50000所以不应该有任何跨域问题。 我还设置只访问网络的发布设置。 当我打电话的XMLSocket连接,服务器似乎得到一个新的连接。 但是,在XMLSocket.onConnect回调不叫成功= TRUE。
什么任何想法可能是错误的?
下面是ActionScript中创建的插座。
function myOnConnect(success) {
if (success) {
trace ("Connection succeeded!")
inputText.text = "open";
// socket.send("1\n");
gotoAndPlay(2);
} else {
trace ("Connection failed!")
inputText.text = "failed";
}
}
btnConnect.onRelease = function()
{
inputText.text = "started";
result = socket.connect("localhost", 50000);
}
socket = new XMLSocket();
socket.onConnect = myOnConnect;
这最终是一个安全问题。 当使用的XMLSocket的Flash播放器增加了安全性。 Flash播放器现在看起来对端口843的策略文件的替代方法是有SWF看看使用呼叫的政策文件Security.loadPolicyFile()
如果该文件存在,所有的安全设置允许的XMLSocket,则连接被创建。
退房的政策文件,Adobe文章等详细信息在这里 。 这又是一个很好的文章有关的政策文件 。
下面是最终为我工作的政策文件。 这不是限制性的。 但是,我想我得到的东西的工作,然后让他们的权利。
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
<!-- Policy file for xmlsocket://socks.example.com -->
<cross-domain-policy>
<!-- This is a master socket policy file -->
<!-- No other socket policies on the host will be permitted -->
<!-- <site-control permitted-cross-domain-policies="all"/> -->
<!-- Instead of setting to-ports="*", administrator's can use ranges and commas -->
<!-- This will allow access to ports 123, 456, 457 and 458 -->
<allow-access-from domain="*" to-ports="*" secure="false"/>
</cross-domain-policy>