flash中通過XMLSocket監(jiān)控生產(chǎn)系統(tǒng)(2-2)
發(fā)表時間:2024-02-06 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]二、技術(shù)介紹2、XMLSocket 對象 實現(xiàn)了客戶端socket(套接字),允許包含F(xiàn)lash應(yīng)用的瀏覽器與服務(wù)端建立socket連接,之后Flash應(yīng)用與服務(wù)端就可以相互發(fā)送XML數(shù)據(jù),而且在一個socket連接建立之后,在該連接上傳送的數(shù)據(jù)量是沒有限制的,直到socket連接關(guān)閉。使用XM...
二、技術(shù)介紹
2、XMLSocket 對象 實現(xiàn)了客戶端socket(套接字),允許包含F(xiàn)lash應(yīng)用的瀏覽器與服務(wù)端建立socket連接,之后Flash應(yīng)用與服務(wù)端就可以相互發(fā)送XML數(shù)據(jù),而且在一個socket連接建立之后,在該連接上傳送的數(shù)據(jù)量是沒有限制的,直到socket連接關(guān)閉。
使用XMLSocket 對象時,必須要注意兩點:o 在socket連接上發(fā)送的XML數(shù)據(jù),每條數(shù)據(jù)以一個0字節(jié)隔開,詳見下面服務(wù)端的建立。
o Flash 應(yīng)用所連接的主機必須是與相應(yīng)Web服務(wù)器在同一IP地址或是同一子域。所謂同一子域是指在同一域名空間中,例如包含F(xiàn)lash應(yīng)用的網(wǎng)頁是從mail.real-ok.com下載的,則name.mail.real-ok.com就是子域,就允許建立連接,而real-ok.com不是子域,F(xiàn)lash的安全規(guī)則就不允許建立連接。
使用XMLSocket 對象的流程為:1) 建立一個XMLSocket 對象 mySocket = new XMLSocket();2) 對生成的XMLSocket 對象進行設(shè)置 mySocket.onConnect = myOnConnect;
mySocket.onData = myOnData;
mySocket.onXML = myOnXML;
mySocket.onClose = myOnClose; 以上四條語句,分別設(shè)置了mySocket的四個事件處理函數(shù),其中,myOnConnect、myOnData、myOnXML分別是帶有一個參數(shù)的函數(shù),myOnClose不帶參數(shù),當發(fā)生相應(yīng)的事件時,就調(diào)用相應(yīng)的處理函數(shù)。
3) 使用XMLSocket 對象的connect方法,建立與服務(wù)端的連接mySocket.connect(null, 6666); 其中,connect方法有兩個參數(shù),第一個參數(shù)表示要連接的主機,可以是全限定的域名和者IP地址,需要注意一點:當使用IP地址時,如 127.0.0.1 需要把它當作字符串來處理,即要用引號把IP地址括起來。如果為null,則連接Web服務(wù)器(從該Web服務(wù)器下載了包含當前Flash應(yīng)用的網(wǎng)頁)所在的IP地址。
第二個參數(shù)表示要連接的端口,由于低于1024的端口被通用程序所占,F(xiàn)lash的安全規(guī)則不允許在低于1024的端口建立連接。connect方法返回布爾型變量true或false,表示連接是否成功。如:
if (!mySocket.connect(null, 2000)) {
myTextField.text = “連接失敗!”;
} 以上語句中,如果連接失敗,connect方法返回flase,則把myTextField(為一非靜態(tài)文字TextField對象的實例)的內(nèi)容設(shè)為“連接失敗!”。
XMLSocket對象與服務(wù)端進行連接將觸發(fā)onConnect事件,則相應(yīng)的事件處理函數(shù)(見上面流程步驟2中的設(shè)置)myOnConnect,其中的參數(shù)與connect方法的返回值意義相同,詳見下面的客戶端實例。