初次接觸 websocket 的人,可能都會有這樣的疑問:我們已經(jīng)有了 http 協(xié)議,為什么還需要websocket協(xié)議?它帶來了什么好處?
原因是http每次請求只能由客戶發(fā)起,而websocket最大特點就是,服務(wù)器可以主動向客戶端推送信息,客戶端也可以主動向服務(wù)器發(fā)送信息
剛好目前項目中用到了websocket,當(dāng)然關(guān)于websocket的知識無論是前端還是后臺開發(fā)的同學(xué)都得掌握,不會也沒關(guān)系,關(guān)注小許,這次給你講明白!
在線教育:
老師進行一對多的在線授課,在客戶端內(nèi)編寫的筆記、大綱等信息,需要實時推送至多個學(xué)生的客戶端,需要通過WebSocket協(xié)議來完成。
圖片
視頻彈幕:
終端用戶A在自己的手機端發(fā)送了一條彈幕信息,但是您也需要在客戶A的手機端上將其他N個客戶端發(fā)送的彈幕信息一并展示。需要通過WebSocket協(xié)議將其他客戶端發(fā)送的彈幕信息從服務(wù)端全部推送至客戶A的手機端,從而使客戶A可以同時看到自己發(fā)送的彈幕和其他用戶發(fā)送的彈幕。
當(dāng)然還有體育實況更新、視頻會議和聊天等等,這里都不一一列舉了
什么是web端即時通訊技術(shù)?
可以理解為實現(xiàn)這樣一種功能:服務(wù)器端可以即時地將數(shù)據(jù)的更新或變化反應(yīng)到客戶端,例如消息推送等功能都是通過這種技術(shù)實現(xiàn)的。
但是在Web中,由于瀏覽器的限制,實現(xiàn)即時通訊需要借助一些方法。這種限制出現(xiàn)的主要原因是,一般的Web通信都是瀏覽器先發(fā)送請求到服務(wù)器,服務(wù)器再進行響應(yīng)完成數(shù)據(jù)的現(xiàn)實更新。
Web端實現(xiàn)即時通訊主要有四種方式:輪詢、長輪詢(comet)、長連接(SSE)、WebSocket。
它們大體可以分為兩類,一種是在HTTP基礎(chǔ)上實現(xiàn)的,包括短輪詢、長輪詢(comet)、長連接(SSE);另一種不是在HTTP基礎(chǔ)上實現(xiàn)是,即WebSocket。下面分別介紹一下這四種輪詢方式。
圖片
基本思路就是客戶端每隔一段時間向服務(wù)器發(fā)送http請求,服務(wù)器端在收到請求后,不管是否有所需數(shù)據(jù)返回,都直接進行響應(yīng)。
圖片
這種方式本質(zhì)上還是客戶端不斷發(fā)送請求,才形成客戶端能實時接收服務(wù)端數(shù)數(shù)據(jù)變化的假象。
實現(xiàn)比較簡單,缺點是需要不斷建立http連接,浪費資源,而且在客戶端數(shù)量級很大的情況下會導(dǎo)致服務(wù)器壓力陡增,顯然不是好選擇!
輪詢方式,你會發(fā)現(xiàn)在你打開F12調(diào)試頁面時,你會發(fā)現(xiàn)大量的HTTP請求呢
本文鏈接:http://www.www897cc.com/showinfo-26-35324-0.html你不知道的Websocket協(xié)議,這次給你講明白!
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com