Luar's Flash Playground:Port 80的XML Socket Server
新聞(101)
觀點或評論(94)
Flash書(63)
教程(73)
Design Patterns(3)
FlashCom筆記(47)
Flash Remoting筆記(27)
Flex筆記(11)
Flash Lite筆記(14)
PHP資訊(23)
Ajax筆記(9)
習作(51)
組件(17)
酷站(32)
學習資源(28)
書籍推介(15)
本站與我(91)
RSS瀏覽器
聯絡
熱愛鑽研
Ajax
ActionScript
Flash
Flash Lite
Flex
Flash Remoting
FlashCom
Director
Lingo
PHP
Multiplayer Game

搜尋
VCASMO
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(至少我從未成功過),真是矛盾!

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

    由Jack SO於04-10-2004發表

同組文章

Movable Type 4.32-en系統支持,Luar's Production版權所有。