Socket 套接字連接允許Flash播放器通過指定的端口與服務器通信,socket連接與其他通信技術最大的不同是socket連接在數據傳輸完成后不會自動關閉。
當socket連接創建后,連接會一直保持,直到客戶端(Flash播放器)和服務端主動關閉,因此服務器可在任何時間不用客戶端請求即可發送數據給客戶端。
Socket連接被普遍用于創建多用戶應用程序,比如說一個在線聊天室,它有一個服務端程序和無數個Flash客戶端組成。每次客戶端發送消息給服務器,服務器檢測那些用戶可以收到這些消息并把消息傳給指定客戶端,這種情況下接收客戶端并沒有提前請求數據而是通過服務器主動推送數據的。當客戶端關閉時,服務端提示其他客戶端某客戶端已離線。
Flash播放器提供了兩種類型的socket連接。一種是早期版本就有的XMLSocket,Flash播放器9增加了二進制socket連接。
使用flash.net.XMLSocket類創建XML數據格式的socket連接,使用flash.net.Socket類創建二進制數據格式socket連接。
XML socket連接以XML數據報交換數據,二進制socket連接是ActionScript 3.0新增的功能,相比之下更低級,但功能很強大,幾乎可以連接任意類型的socket服務端程序。例如二進制sockets 可連接郵件服務端程序(POP3, SMTP, 和IMAP), 新聞服務器(NNTP), 聊天室服務器或遠程桌面VNC服務器( RFB)。
不管是哪種類型的socket 連接,其通信方式都是異步的,也就是說你不能直接從socket 連接中讀取數據,而是通過事件處理函數進行讀取處理。
新聞熱點
疑難解答