在解決什么問(wèn)題
客戶端如何及時(shí)更新服務(wù)端更新的數(shù)據(jù)。
用 Ajax 的做法是定時(shí)器加反復(fù)輪詢,檢查服務(wù)器數(shù)據(jù)是否更新,并做更新操作。這樣會(huì)有很多問(wèn)題。不及時(shí),網(wǎng)絡(luò)有壓力,有流量消費(fèi)。
而 WebSocket 是一個(gè)主動(dòng)的過(guò)程,只要客戶端訂閱了這個(gè)消息,服務(wù)端數(shù)據(jù)有變化時(shí),就會(huì)通知客戶端。
是什么
它支持雙向通訊,建立起連接 `ws://xxx`
可以在 chrome 開(kāi)發(fā)者工具中看到
優(yōu)劣
1. 可伸縮性
對(duì)于普通的 http 服務(wù),客戶端發(fā)的每個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)連接,經(jīng)過(guò)負(fù)載均衡會(huì)分配到任意一個(gè)服務(wù)器上,處理結(jié)果都一致。增加服務(wù)不會(huì)有問(wèn)題。
但對(duì)于 websocket 就不一樣了,由于只建立了一個(gè) websocket 連接,所以就復(fù)雜些了。可以在服務(wù)端再次加個(gè)中間層,一個(gè)接入層,消息分發(fā)層,再后面才是實(shí)現(xiàn)層處理邏輯。
2. xxx
講的沒(méi)聽(tīng)懂