Luar's Flash Playground:Port 80的XML Socket Server
Port 80的XML Socket Server (03-10-2004)

在Flash Player 7.0r14或以前,只可以連到Port 1024以上的XML Socket Server,但一般大公司Firewall都封閉了這些Port。自Flash Player 7.0r19起,Flash Player可以連Port 80的XML Socket Server,因為本身HTTP Port被佔用了,所以無法Host網頁HTML和SWF等東西,所以通常是另一台機器負責XML Socket Server,但這樣做,XML Socket Server一定是跨Domain,需要加入crossdomain.xml。Flash Player 7.0r14只會找http://www.myDomain.com/crossdomain.xml,XML Socket Server的機器沒有HTTP,當然無法找到crossdomain.xml,因此,Flash Player 7.0r19起另外作出了補救,可以用System.security.loadPolicyFile("xmlsocket://otherDomain.com:80");指定crossdomain.xml的位置。

crossdomain.xml裡,加上to-ports的屬性,例如:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*.luar.com.hk" to-ports="80" />
</cross-domain-policy>

不過,在真實Deploy時,Browser卻不容許連向少於Port 1024的XML Socket Server(至少我從未成功過),真是矛盾!

本文章由發表。
意見
"; print "沒有意見。
 "; } ?>
  • 這個問題無法解決的, 除非在 Server-side 將 Socket 轉成 Polling 出, 但這樣就失去 Socket 的原意了 :)

    由Jack SO於04-10-2004發表

同組文章