什麼是WebSockets!?
到目前為止,我們已經深入到實時世界,因為許多應用程式使用實時資料。 現在正是以技術立場解釋所有導致這一點的事件的時候了。 所以,這裡......
目前,應用程式正在從利用資料庫中的陳舊資料或在實際事件之後的實時體驗中事件觸發後即時建立的資料轉變。 我們在實時應用程式中首先想到的是 WebSockets 。 但是,儘管很多人不斷在技術圈中圍繞這個術語,但實際上似乎存在與其意義和工作相關的巨大誤解。
讓我們破解行話並瞭解正在發生的事情!
HTTP - >長輪詢 - > WebSockets
回到當天,HTTP的無狀態請求 - 響應機制非常適合當天的用例,讓任何兩個節點透過網際網路進行通訊。 由於它都是無狀態的,即使連線斷開,您也可以輕鬆地從那一點恢復通訊。
然而,隨著應用程式轉向實時實現,即確保在現實世界中建立共享資料時的最小延遲,傳統的請求 - 響應週期被證明是一個巨大的開銷。 為什麼? 高頻請求 - 響應週期導致更多延遲,因為每個週期都需要每次都建立新連線。
從邏輯上講,下一步是為相同數量的資料流最小化這些週期的方法。 解? 長輪詢!
透過長輪詢,底層TCP套接字連線可以持續一段時間,即連線可以保持開啟狀態比平時更長。 這不僅使伺服器有機會整理多個資料以在單個響應中發回,而不是在單個響應中傳送,而且,它幾乎完全消除了由於缺少資料而返回空響應的情況。現在伺服器只要有實際回饋的資料就可以返回響應。
但是,即使長輪詢技術也涉及連線建立和頻繁的請求 - 響應週期,類似於傳統的HTTP,當然,這會導致更多的延遲。
對於大多數實時應用程式而言,資料的速度(最接近最接近的毫秒數)絕對至關重要,因此上述兩種選項均未被證明是有用的。
然後怎樣呢?
自從我透過提及WebSockets開始撰寫文章以來,你顯然會猜到我得到了什麼。
因此,與HTTP不同,WebSockets是一種透過TCP工作的有狀態通訊協議。
通訊最初是作為HTTP握手開始的,但如果兩個通訊方同意繼續透過WebSockets,則連線只是提升,從而產生全雙工,持久連線。 這意味著連線在應用程式執行時的整個持續時間內保持開啟狀態。 這為伺服器提供了一種啟動任何通訊並將資料傳送到預訂客戶端的方法,因此他們不必繼續傳送詢問新資料可用性的請求。
實際應用程式實際上發生了很多事情,而不是我在本文中簡單總結的內容。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2219832/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是WebSockets、伺服器傳送事件、長輪詢、WebRTC、WebTransport?Web伺服器事件
- 什麼是cookie,什麼是sessionCookieSession
- 什麼是DNS,什麼是HostsDNS
- 什麼是模式? 什麼是框架?模式框架
- 什麼是WebAuthn、FIDO 是什麼?Web
- ITIL是什麼意思?ITIL是什麼?
- 什麼是跨域,什麼是同源跨域
- 什麼是.NET平臺、什麼是c#、什麼是ASP.NET。C#ASP.NET
- ftp是什麼,ftp是什麼東西?FTP
- Java是什麼_Java是做什麼的?Java
- 什麼是正向代理?什麼是反向代理?
- NLA是什麼?NLA的原理是什麼?
- 為什麼要有 Servlet ,什麼是 Servlet 容器,什麼是 Web 容器?ServletWeb
- 什麼是塊元素?什麼是行內元素?
- 什麼是API介面,具體是什麼意思?API
- 什麼是框架?為什麼說 Angular 是框架?框架Angular
- 什麼是Unicode,什麼是UTF-8Unicode
- 什麼是藍海?什麼是紅海?什麼是網際網路思維?
- WebSockets通訊Web
- nginx 是什麼,能幹什麼?Nginx
- 什麼是Django?有什麼用途?Django
- AI三重問:什麼是AI?什麼是AI模型?什麼是AI大模型?AI大模型
- 什麼是重繪repaint?什麼是迴流reflow?AI
- DHCP是什麼?DHCP伺服器是什麼意思?伺服器
- 什麼是CDN?CDN的技術原理是什麼?
- 交換機是什麼,它的工作原理是什麼
- GNU是什麼?和Linux是什麼關係?Linux
- 域名是什麼?申請域名的流程是什麼?
- 什麼是雲端計算?什麼是公司網盤?
- 什麼是 Nginx?Nginx
- 什麼是PHPPHP
- 什麼是PodcastAST
- 什麼是Flutter?Flutter
- 敏捷是什麼?敏捷
- SQL是什麼?SQL
- 什麼是Docker?Docker
- 什麼是反射?反射
- 什麼是websoketWeb