B/S架構的實時通信

        對於web的實時通信,例如基於Browser(下簡稱B)的網絡聊天程序,目前主要還是靠B端向Server(下簡稱S)端發起輪詢獲得最新信息。webserver在設計的時候考慮到B端可能數量太大,所以沒有保存與B端的連接信息(如IP之類的)方便下次連接,所以B/S之間的數據交互,是由B端發起的。當然,HTML5定義了WebSocket協議(目前大多數瀏覽器已實現),能更好的節省服務器資源和帶寬並達到實時通訊。
        輪詢,對於大多數請求是獲取不到後臺更新的數據,如果頻率太高則佔用帶寬,太低則無法及時顯示實時數據。大體的做法是:B端ajax請求超時時間設長點,讓其在S端沒有返回數據的情況下hold住connection;S端則查詢相關數據,如果有更新數據則立馬返回,否則不停地循環直到有更新數據或者達到預設定的閾值爲止,在每次循環中可以適當sleep一段時間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章