第一章: WebSocket初識(shí)

關(guān)于webSocket的話題并不少見,比如我們經(jīng)常遇到的聊天室啦,實(shí)時(shí)的消息互動(dòng)啦,巴拉巴拉很多東西都會(huì)使用的一項(xiàng)技術(shù)。接下來我們就具體來看看webSocket到底是什么東西以及具體的應(yīng)用場景

WebSocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議。它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工(full-duplex)通信——允許服務(wù)器主動(dòng)發(fā)送信息給客戶端。
WebSocket通信協(xié)議于2011年被IETF定為標(biāo)準(zhǔn)RFC 6455,并被RFC7936所補(bǔ)充規(guī)范。

這一段是百度百科給的解釋,在這里提到了一個(gè)關(guān)鍵詞 全雙工,接下來我們就要提到三個(gè)概念了

單工 Simplex

通信雙方被明確的分為發(fā)送器和接收器,只允許單向的數(shù)據(jù)傳輸。
舉個(gè)栗子:比如收音機(jī),它除了接受信號(hào)并播放之外就沒有什么功能了,而此時(shí)的電臺(tái)就承擔(dān)了發(fā)送器這一角色

半雙工 Half Duplex

通信雙方既是發(fā)送器也是接收器,但在同一時(shí)刻只允許向一個(gè)方向傳送數(shù)據(jù)。
舉個(gè)栗子:比如步話機(jī),我們經(jīng)常看到的場景是這樣的
現(xiàn)場的客戶:喂喂, 為什么我的網(wǎng)頁訪問不到????? over
遠(yuǎn)程的技術(shù):什么?我先去查查網(wǎng)絡(luò)問題 over
現(xiàn)場的客戶:你們到底行不行啊,我花了大價(jià)錢你們就這么個(gè)服務(wù)? over
遠(yuǎn)程的技術(shù):大哥你別慌,我已經(jīng)跟服務(wù)器那邊聯(lián)系#@$!我們正在抓緊時(shí)間檢測問題#%……#¥% over
...
現(xiàn)場的客戶:你們別找了,我的網(wǎng)線被老鼠啃了 over
遠(yuǎn)程的技術(shù):...我去年買了個(gè)表


timg.gif

我們可以看到這種類似于回合制的場景就是半雙工的最大特點(diǎn)了

全雙工 Full Duplex

通信雙方既是發(fā)送器也是接收器,并且允許同時(shí)相互發(fā)送消息。
舉個(gè)栗子:
現(xiàn)場的客戶:喂喂, 為什么我的網(wǎng)頁訪問不到?。???
遠(yuǎn)程的技術(shù):什么?我先去查查網(wǎng)絡(luò)問題
現(xiàn)場的客戶:你們到底行不行啊...(被打斷)
遠(yuǎn)程的技術(shù):大哥你別慌,我已經(jīng)跟服務(wù)器那邊聯(lián)系#@$!我們正在抓緊時(shí)間檢測問題#%……#¥%!@
現(xiàn)場的客戶:...我好像..(再次被打斷)
遠(yuǎn)程的技術(shù):也有可能是xx問題,我再看看
現(xiàn)場的客戶:...你們不用..(再再次被打斷)
遠(yuǎn)程的技術(shù):不不不,已經(jīng)確定不是這個(gè)問題了,真是奇了怪了


timg (1).jpg

...
現(xiàn)場的客戶:你們別找了,我的網(wǎng)線被老鼠啃了
遠(yuǎn)程的技術(shù):你為什么不早說???
現(xiàn)場的客戶:...你倒是給我機(jī)會(huì)說啊

timg.jpg

好了,以上就是關(guān)于通信方式的三種方式了。接下來我們來了解一下webSocket具體是如何工作的
首先我們先看看他的大兄弟http是如何工作的

無標(biāo)題.png

由上圖可以得到一個(gè)結(jié)論http真是一個(gè)話癆,啊,不是,我們得到的結(jié)論是如果客戶端需要獲取信息的話,就需要不斷的通過http請求訪問服務(wù)器來得到信息。在這里我們來看看下面的幾個(gè)概念

短連接

--連接開始--
http:我想要查一下托尼老師的信息
server:好啊,這是他的家庭住址,電話...@#&&%%*
--連接關(guān)閉--
--連接開始--
http:剛剛的信息搞掉了,你再給我發(fā)一份唄
server:???什么上一份,你再說啥?
--連接關(guān)閉--
--連接開始--
http:就剛剛的啊
server:???什么剛剛的,你再說啥?
--連接關(guān)閉--
--連接開始--
http:我想要查一下托尼老師的信息
server:好啊,這是他的家庭住址,電話...@#&&%%*
--連接關(guān)閉---

由此可知,服務(wù)器是屬魚的,你給他說的東西他轉(zhuǎn)眼就忘了

長連接

--連接開始--
http:我想要查一下托尼老師的信息
server:好啊,這是他的家庭住址,電話...@#&&%%*
http:剛剛的信息搞掉了,你再給我發(fā)一份唄
server:這是他的家庭住址,電話...@#&&%%*
http:托尼老師叫什么來著?
server:這是他的家庭住址,電話...@#&&%%*
http:托尼老師是做什么?
server:這是他的家庭住址,電話...@#&&%%*
--連接關(guān)閉--

由此可知,客戶端也是是屬魚的,你給他說的東西他轉(zhuǎn)眼就忘了,我們可以看到長連接對比與短連接來說的話,我們連接了長連接的話,我們就可以重復(fù)使用了,避免了頻繁的請求

短輪詢

http:藍(lán)翔技校招生了嗎?
server:...沒有
http:藍(lán)翔技校招生了嗎?
server:...沒有
http:藍(lán)翔技校招生了嗎?
server:...沒有
http:藍(lán)翔技校招生了嗎?
server內(nèi)心os:你怎么就不問問新東方呢?

短輪詢的話很簡單,就是每隔幾秒就向服務(wù)器發(fā)送一次請求用于獲取數(shù)據(jù)

長輪詢

http:藍(lán)翔技校招生了嗎?沒有的話等招生了再告訴我
...十年后
server:藍(lán)翔技校招生了,三百個(gè)機(jī)位不銹鋼,五百個(gè)技工技術(shù)強(qiáng)@#$@#!!@#
北大青鳥http:???

長輪詢的話,發(fā)送一次請求后,就等到服務(wù)器有響應(yīng)時(shí)才進(jìn)行返回

好了,關(guān)于webSocket的姿勢你get到了嗎?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,940評論 1 92
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評論 19 139
  • 原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-WebSo...
    敢夢敢當(dāng)閱讀 9,030評論 0 50
  • 這樣晴朗的天 藍(lán)色翩翩的牛仔衫 你微笑著臉 人群里與我擦肩 像極了某個(gè)從前 還有你瞪著狗屎看的眼 把路人都帶偏 你...
    煙雨淺川閱讀 275評論 2 1
  • A電器公司看到某衛(wèi)生局采購醫(yī)用電冰箱的公開招標(biāo)公告,要求供應(yīng)商必須具有醫(yī)療器械生產(chǎn)或者經(jīng)營許可證,并且在購買招標(biāo)...
    明月裝飾了你的窗子閱讀 148評論 0 0

友情鏈接更多精彩內(nèi)容