XMLSocket 類實現了用戶端通訊端,這使得運行 Flash Player 的電腦可以與由 IP 位址或網域名稱標識的伺服器電腦進行通訊。 對於要求延隔時間較短的用戶端/伺服器應用程式,如即時聊天系統,XMLSocket 類非常有用。 傳統的基於 HTTP 的聊天解決方案頻繁輪詢伺服器,並使用 HTTP 要求來下載新的訊息。 與此相對照,XMLSocket 聊天解決方案保持與伺服器的開放串連,這一串連允許伺服器即時發送傳入的訊息,而無需用戶端發出請求。 若要使用 XMLSocket 類,伺服器電腦必須運行可識別 XMLSocket 類使用的協議的精靈。 實現XMLSocket需要遵守協議:
- XML 訊息通過全雙工系統 TCP/IP 流通訊端串連發送。
- 每個 XML 訊息都是一個完整的 XML 文檔,以一個零 (0) 位元組結束。
- 通過 XMLSocket 串連發送和接收的 XML 訊息的數量沒有限制。
XMLSocket.connect() 方法只能串連到連接埠號碼大於等於 1024 的 TCP 通訊埠。 這種限制的一個後果是,向與 XMLSocket 對象通訊的伺服器精靈分配的連接埠號碼也必須大於等於 1024。 連接埠號碼小於 1024 的連接埠通常用於系統服務(如 FTP、Telnet 和 HTTP),因此,出於安全方面的考慮,禁止 XMLSocket 對象使用這些連接埠。 這種連接埠號碼方面的限制可以減少不恰當地訪問和濫用這些資源的可能性。
使用XMLSocket的實現需要考慮Flash的安全問題:
- 如果執行調用的 SWF 檔案在只能與本地檔案系統內容互動的沙箱中,而目標資源來自網路沙箱,則不允許發送或接收資料。
- 如果執行調用的 SWF 檔案來自網路沙箱而目標資源在本地,也不允許發送或接收資料。
- 進行調用的 SWF 檔案和被訪問的網路資源必須在同一個域裡。 例如,位於 www.cnblogs.com 的 SWF 檔案只能向同樣位於 www.cnblogs.com 的源發送(或從中接收)資料。
- 網站可通過跨域策略檔案允許對資源進行跨域訪問。