B/S架構的實時通信
來源:程序員人生 發布時間:2015-02-28 08:11:13 閱讀次數:3518次
對web的實時通訊,例如基于Browser(下簡稱B)的網絡聊天程序,目前主要還是靠B端向Server(下簡稱S)端發起輪詢取得最新信息。webserver在設計的時候斟酌到B端可能數量太大,所以沒有保存與B真個連接信息(如IP之類的)方便下次連接,所以B/S之間的數據交互,是由B端發起的。固然,HTML5定義了WebSocket協議(閱讀器還未實現),能更好的節省
服務器資源和帶寬并到達實時通訊。
輪詢,對大多數要求是獲得不到后臺更新的數據,如果頻率太高則占用帶寬,太低則沒法及時顯示實時數據。大體的做法是:B端ajax要求超時時間設長點,讓其在S端沒有返回數據的情況下hold住connection;S端則查詢相干數據,如果有更新數據則立馬返回,否則不停地循環直到有更新數據或到達預設定的閾值為止,在每次循環中可以適當sleep1段時間。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈