【摘要】本文從實際工程應用角度出發,系統前臺采用Javascript,Html5,Web Stocket等技術實現,包括以界面功能為主,展現良好的客戶體驗富客戶端,在頁面上表現類似于QQ界面。系統后臺采用My Sql,Spring,Java為主,以提供后臺查詢,消息服務器,遠程離線數據存儲等功能。實時 Web 應用的首選方案是WebSocket,能夠解決以往B/S結構負載過重服務器端的問題,可以減少服務器布置的數量;并使軟件的安裝量減低,同時簡化客戶的操作學習難度,極大降低應用成本。設計內容包括身份驗證、注冊登錄、在線聊天、離線信息傳送和查詢聊天記錄等功能。
【關鍵詞】WebSocket;Html5;IM(即時通訊)
1.緒論
通常情況下,通過http僅能實現單向的通信在瀏覽器中,而模擬雙向通信可以采用comet,但其效率較低,并需要服務器有較好的支持;而實現真正的雙向通信在flash中的socket和xmlsocket可以的,通過flex ajax bridge,可以在javascript中使用這兩項功能。可以預見,如果websocket一旦在瀏覽器中得到實現,將會替代上面兩項技術,得到廣泛的使用。面對這種狀況,HTML5定義了WebSocket協議,能更好的節省服務器資源和帶寬并達到實時通訊。WebSocket協議是HTML5一種新的協議。它是實現了瀏覽器與服務器全雙工通信。
現很多網站為了實現即時通訊,大多所采用的技術都是輪詢技術。指在特定的的時間間隔(每秒),服務器被瀏覽器發出HTTP請求,最新的數據被服務器返回給客服端的瀏覽器。這種傳統的HTTP請求的模式帶來很明顯的缺點:需要瀏覽器不斷的向服務器發出請求,而HTTP發出請求的頭部又是非常長,即時包含的數據只是一個極小的值,這樣也會占用很多的帶寬。而達到輪詢效果的Comet采用了AJAX技術是比較新的技術。它雖然可達到全雙工通信,還是需要發出不斷的請求。在WebSocket 應用程序界面中,瀏覽器和服務器只需做一個Handshake的動作,然后,服務器和瀏覽器之間就形成了一條快速通道。直接實現了數據的互相傳送。在WebSocket協議中,實現即時服務有兩個優點:一是頭部,互相溝通的頭部占用很小字節(約2字節)。二是服務器推送,數據被服務器主動傳送給客戶端。
在瀏覽器中實現和服務器端雙向通信是WebSocket規范的目的。瀏覽器上的應用類型被雙向通信所拓展,例如實時的數據推送(天氣預報),網絡Game,即時通信等。
最新版本的Google Chrome瀏覽器、蘋果Safari瀏覽器、火狐貍瀏覽器以及歐朋瀏覽器支持某些HTML5特性。而IE瀏覽器9將支持某些 HTML5的特性。
HTML5定義了WebSocket協議,更好的節省服務器資源和帶寬進行實時通訊。作為未來的Web標準,HTML5擁有許多新特性,如Local storage、Canvas、Multimedia programming interface、WebSocket等等。瀏覽器提供對 Socket 的支持就是WebSocket的出現成為可能,一個基于 TCP 連接的雙向通道在瀏覽器和服務器之間被提供。實時web[5]應用被方便地使用WebSocket所構建。
2.系統架構比較
在Html5 Websocket呈現以前,Web版本的Im應用都是基于Ajax輪詢的信令傳輸體式格式,這種體式格式的長處是調用Rest接口可以實現無狀況保護信令傳輸,Server端都有成熟的Jsp、Php等技巧框架支撐;毛病不問可知,就是收集應用浪費Server負載過大等等。Websocket的呈現給Web端的信令傳輸供給了新的路子。
在Html5標準中的Websocket協議基礎上,我們提出一種基于Websocket協議的實時Web解決方案,目的是大幅提升實時服務性能,并更高效地利用網絡負載和服務器端的處理能力。
3.本系統功能介紹
最基本功能跟網絡QQ相似,要擁有賬號后才能登錄進行相應的操作。本系統主要功能有:搜索好友、添加好友、刪除好友、修改密碼、兩個人聊天和多人聊天。
系統登錄界面如圖2所示。
登錄界面指的是需要提供帳號和密碼驗證的窗口界面,有保護操作安全的作用、控制用戶權限等,系統默認自帶10個測試帳號10001-10010。主界面、設置界面、消息界面、查詢界面、編輯資料界面、聊天窗口界面等操作。
4.結束語
經過開發和測試和試運行。相對于傳統的ajax技術,所采用websocket技術傳遞信息速度快,效率高,并且免去了ajax技術不斷刷新頁面的缺點,真正實現了即時通訊,甚至幾乎能夠媲美C/S架構的即時通訊軟件。web即時通訊系統不需用戶自己安裝軟件,只需服務器端配置完成后,用戶輸入地址登錄即可。
本系統實現了一款即時通訊軟件,它擁有Web QQ的所有優點。本軟件比騰訊QQ更為方便快捷,它不需要下載客戶端,在網頁上登錄就可以實現基礎的即時通信服務。本系統運用websocket、java技術和數據庫mysql相結合,實現了最基本的一些功能。該系統基于Web瀏覽器的即時通信服務,不需要下載客戶端,打開瀏覽器即可完成即時通信。它具有Web原有的便利性特點,也保持了用戶在客戶端軟件的一些操作習慣,它的推出豐富了大家的 “在線生活”平臺。
參考文獻
[1]郭欣.基于HTML5的通用WebIM組件的前端設計與實現[D].華中科技大學,2011.
[2](美)PaulS.Wang,Sanda S.Katila.Web設計與編程導論[M].高等教育出版社,2009:115-136.
[3]王宏宇,賈仰理.Java面向對象程序設計[M].北京:中國人民大學出版社,2009:123-196.
[4]錢宇虹.淺析Comet技術在Java Web實時系統開發中的應用[J].電腦知識與技術,2010(4):86-92.