WebSocket 是什麼原理?如何實現消息實時推送?

目前要實現消息實時推送,有兩種方法,一種是ajax輪詢,由客戶端不停地請求服務器端,查詢有沒有新消息,而後再由服務器返回結果;另一種就是long poll,經過一次請求,詢問服務器有沒有新消息更新,若是沒有新消息時,會保持長鏈接,就一直不返回Response給客戶端。直到有消息才返回,返回完以後,客戶端再次創建鏈接,周而復始。這兩種都是單向連接,須要被動的請求服務器,而不是由服務器自動發給客戶端。php

從上面能夠看出其實這兩種方式,都是在不斷地創建HTTP鏈接,而後等待服務端處理,能夠體現HTTP協議的另一個特色,被動性。
何爲被動性呢,其實就是,服務端不能主動聯繫客戶端,只能有客戶端發起。
簡單地說就是,服務器是一個很懶的冰箱(這是個梗)(不會、不能主動發起鏈接),可是上司有命令,若是有客戶來,無論多麼累都要好好接待。html

爲了解決被動的問題,就出現了Websocket
有關Websocket的實現原理請參看下面的知乎文章:
WebSocket 是什麼原理?爲何能夠實現持久鏈接?
PHP Socket 編程過程詳解ajax

相關文章
相關標籤/搜索