欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

HTTP 長輪詢與 WebSockets

admin
2024年10月18日 21:13 本文熱度 419

HTTP 長輪詢

它解決了在 Web 上構建雙向應用程序的問題 — 一個專為客戶端發出請求而服務器響應的單向世界而設計的平臺。這是通過顛倒請求-響應模型來實現的:

  1. 客戶端向服務器發送 GET 請求: 與傳統的 HTTP 請求不同,您可以將其視為開放式請求。它不是要求特定的響應,而是在準備好時請求任何響應。

  2. 時間流逝: HTTP 超時可使用 Keep-Alive 標頭進行優化。長輪詢通過設置非常長或無限期的超時時間來利用這一點,因此即使服務器沒有立即響應,請求也會保持打開狀態。

  3. 服務器響應: 當服務器有要發送的內容時,它會通過響應關閉連接。這可能是新的聊天消息、更新的體育比分或突發新聞提醒。

  4. 客戶端發送新的 GET 請求,然后循環再次開始。

HTTP 長輪詢成功的關鍵在于,它不會改變基本原理,尤其是在客戶端上。但是,大多數工作都需要在服務器上進行。特別是,管理可能數十萬個連接的狀態是資源密集型的。

當使服務器能夠將數據推送到 Web 客戶端時,HTTP 長輪詢是一種解決方法。它使 HTTP 略微變形,為我們提供了一種廣泛可用的方法,讓 Web 服務器將數據推送到 Web 客戶端。要了解長輪詢在哪些方面有用,我們應該看看它在哪些方面做得好,在哪些方面做得不夠。

優點和缺點

  • 幾乎在每個 Web 客戶端中都可用: 因為它使用基本的 HTTP 請求-響應周期,所以幾乎所有允許您調整超時并支持 XMLHttpRequest 的支持 HTTP 的客戶端(瀏覽器、庫、IoT 設備等)都已經支持長輪詢。

  • 您的 Web 服務器已經支持它: 盡管您需要編寫自己的代碼來處理輪詢在應用程序后端的工作時間,但長輪詢適用于現有的 Web 基礎架構。

  • 未被防火墻阻止: 現代實時協議使用與 HTTP 不同的端口,有些協議使用 UDP 而不是 TCP。盡管問題比以前小得多,但一些公司防火墻可能會阻止這些協議,但不會阻止 HTTP。

  • 效率低下且速度慢: 現代實時協議(如 WebSocket)產生的開銷比長輪詢少得多。他們設置單個持久連接并根據需要發送數據。長輪詢需要每次服務器向客戶端發送內容時進行完整的 HTTP 握手。這會浪費帶寬并增加延遲。

  • 規模有點復雜: 我們要求它做的越多,長輪詢作為一種解決方法的狀態就越清晰。跨多個服務器擴展長輪詢意味著在基本無狀態協議中跟蹤會話狀態。

  • 難以做出保證: 很難保證消息會按順序從服務器到達客戶端,或者根本無法保證。例如,如果客戶端打開了兩個使用相同服務器資源的瀏覽器選項卡,并且客戶端應用程序將數據保存到本地存儲(如 localStorage 或 IndexedDb),則無法內置保證不會多次寫入重復數據。

WebSockets 瀏覽器

WebSocket 是一種實時技術,它通過持久的單套接字連接在客戶端和服務器之間實現雙向、全雙工通信。WebSocket 連接根據需要保持活動狀態,允許服務器和客戶端以最小的開銷隨意發送數據。

WebSocket API 是一個編程接口,用于創建 WebSocket 連接并管理 Web 應用程序中客戶端和服務器之間的數據交換。它為開發人員提供了一種在其應用程序中使用 WebSocket 協議的簡單標準化方法。

如今,幾乎所有現代瀏覽器都支持 WebSocket API。此外,還有大量框架和庫(包括開源和商業解決方案)實現 WebSocket API。

例如,您可以使用 WebSockets 來:

  • 強大的實時聊天體驗。

  • 廣播實時事件數據,例如實時比分和流量更新。

  • 促進共享項目和白板上的多人協作。

  • 發送通知和警報。

  • 使您的后端和前端保持實時同步。

  • 將實時位置跟蹤功能添加到城市交通和食品配送應用程序。

建立 WebSocket 連接的過程稱為開始握手,包括客戶端和服務器之間的 HTTP 請求/響應交換。成功打開握手后,客戶端和服務器可以通過持久 WebSocket 連接交換消息(幀)。WebSocket 消息可能包含字符串(純文本)或二進制數據。一旦持久 WebSocket 連接達到其目的,就可以終止它;客戶端和服務器都可以通過發送 close 消息來啟動結束握手。

WebSocket 優勢

  • WebSockets 保持唯一的連接打開,同時消除了長輪詢引起的延遲問題。

  • 支持全雙工異步消息傳遞,以便客戶端和服務器都可以獨立地將消息流式傳輸到彼此。

  • WebSockets 通常不使用 ,因此,不會在每個服務器請求上發送標頭。這反過來又減小了數據有效負載的大小。XMLHttpRequest

  • WebSockets 無需任何重新配置即可通過大多數防火墻,并且具有基于源的安全模型。

WebSocket 的缺點

  • 當連接終止時,WebSockets 不會自動恢復 — 這是您需要自己實現的事情,也是存在許多客戶端庫的部分原因。

  • 這并不完全是一個缺點,但值得一提的是 WebSocket 是有狀態的,這意味著如果您水平擴展,您將不得不考慮如何管理狀態。


該文章在 2024/10/19 12:20:47 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved