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