[英]Flash client XMLSocket not connecting to server
我有一個要連接到服務器的Flash客戶端。 兩者都使用本地主機和端口50000,因此不應有任何跨域問題。 我還在發布設置中設置了“僅訪問網絡”。 當我調用XMLSocket連接時,服務器似乎獲得了一個新的連接。 但是,不會以success = true調用XMLSocket.onConnect回調。
有什么想法可能有問題嗎?
這是用於創建套接字的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 Player增加了安全性。 現在,Flash Player會在端口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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.