聶開 張莎莎 王玨輝
摘要:傳統(tǒng) Web 模式在處理高并發(fā)及實時性需求的時候,會遇到難以逾越的瓶頸,我們需要一種高效節(jié)能的雙向通信機制來保證數(shù)據(jù)的實時傳輸。WebSocket 是 HTML5 一種新的協(xié)議。它實現(xiàn)了瀏覽器與服務器全雙工通信,能更好的節(jié)省服務器資源和帶寬并達到實時通訊,在老人健康看護系統(tǒng)中使用Websocket技術(shù)可以很好的解決web端和服務端之間數(shù)據(jù)通信實時性和穩(wěn)定性的問題。
關(guān)鍵詞:Websocket技術(shù) 實時性 服務器
中圖分類號:TP393.02 文獻標識碼:A 文章編號:1007-9416(2016)07-0077-01
1 WebSocket技術(shù)的機制分析
WebSocket是一種新的WEB數(shù)據(jù)通信應用協(xié)議,它實現(xiàn)了WEB客戶端與服務端之間全雙工通信,能更好的節(jié)省服務器資源和帶寬并達到實時通訊,它是建立在TCP協(xié)議之上的,同HTTP一樣通過TCP來傳輸數(shù)據(jù),但是它和HTTP最大不同是:
(1)WebSocket是一種雙向通信協(xié)議,在建立連接后,WebSocket服務器和Browser都能主動的向?qū)Ψ桨l(fā)送或接收數(shù)據(jù),就像基于TCP/IP協(xié)議的Socket通信的方式一樣;
(2)WebSocket需要類似TCP的客戶端和服務器端通過握手連接,連接成功后才能相互通信。
相對于傳統(tǒng)HTTP每次請求-應答都需要客戶端與服務端建立連接的模式,WebSocket是類似Socket的TCP長連接的通訊模式,一旦WebSocket連接建立后,后續(xù)數(shù)據(jù)都以幀序列的形式傳輸。在客戶端斷開WebSocket連接或Server端斷掉連接前,不需要客戶端和服務端重新發(fā)起連接請求。在海量并發(fā)及客戶端與服務器交互負載流量大的情況下,極大的節(jié)省了網(wǎng)絡帶寬資源的消耗,有明顯的性能優(yōu)勢,且客戶端發(fā)送和接受消息是在同一個持久連接上發(fā)起,實時性優(yōu)勢明顯如圖1所示。
2 WebSocket技術(shù)實現(xiàn)
WebSocket的實現(xiàn)分為客戶端和服務端兩部分,客戶端(通常為瀏覽器)發(fā)出WebSocket連接請求,服務端響應,實現(xiàn)類似TCP握手的動作,從而在瀏覽器客戶端和WebSocket服務端之間形成一條HTTP長連接快速通道。兩者之間后續(xù)進行直接的數(shù)據(jù)互相傳送,不再需要發(fā)起連接和相應。WebSocket服務端在各個主流應用服務器廠商中都符合標準,IBM的WebSphere,微軟的IIS,Apache的Tomcat,redhat的JBOSSEAP。對于WebSocket客戶端瀏覽器有Chrome,F(xiàn)irefox,IE,Safari等。
3 老人健康看護系統(tǒng)應用分析
老人健康看護系統(tǒng)中,會涉及相關(guān)的硬件設備,例如基于Zigbee無線通信技術(shù)的呼叫器、呼叫手表、路由設備、老人體征監(jiān)測床墊等,這些硬件設備都會連接到服務端,并且實時上傳數(shù)據(jù)到服務器,當服務器收到相關(guān)數(shù)據(jù),再發(fā)送到Web客戶端,顯示數(shù)據(jù)給用戶,在這個過程中,最重要的就是服務端能夠及時準確的推送數(shù)據(jù)到用戶的手機或者PC上,顯然采用WebSocket技術(shù)非常重要,可以有效解決并發(fā)的問題,也可以解決數(shù)據(jù)實時顯示的問題。
當1號和2號客戶端上線,會打開WebSocket的HTTP長連接,A上線以后,當其信息狀態(tài)發(fā)生變化的時候,會通過WebSocket發(fā)送實時消息,并且能夠準確的推送到2號顯示。這樣任何的硬件設備上線或者離線,都會及時通知給服務器,服務器會準確及時的推送消息給監(jiān)控的手機或電腦加以顯示如圖2所示。
參考文獻
[1]李代立,陳容.WebSocket在Web實時通信領(lǐng)域的研究[J].電腦知識與技術(shù),2010年28期.
[2]溫照松,易仁偉,姚寒冰.基于WebSocket的實時Web應用解決方案[J].電腦知識與技術(shù),2012年16期.
[3]薛隴彬,劉釗遠.基于WebSocket的網(wǎng)絡實時通信[J].計算機與數(shù)字工程,2014年3期.