日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

HTTP 長輪詢與 WebSockets

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

HTTP 長輪詢

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

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

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

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

  4. 客戶端發(fā)送新的 GET 請求,然后循環(huán)再次開始。

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

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

優(yōu)點和缺點

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

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

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

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

  • 規(guī)模有點復雜: 我們要求它做的越多,長輪詢作為一種解決方法的狀態(tài)就越清晰??缍鄠€服務器擴展長輪詢意味著在基本無狀態(tài)協(xié)議中跟蹤會話狀態(tài)。

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

WebSockets 瀏覽器

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

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

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

例如,您可以使用 WebSockets 來:

  • 強大的實時聊天體驗。

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

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

  • 發(fā)送通知和警報。

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

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

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

WebSocket 優(yōu)勢

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

  • 支持全雙工異步消息傳遞,以便客戶端和服務器都可以獨立地將消息流式傳輸?shù)奖舜恕?/p>

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

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

WebSocket 的缺點

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

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


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

主站蜘蛛池模板: 久热国产精品视频一区二区三区 | 亚洲影视网 | 亚洲制服丝袜自拍中文字幕 | 国产精品激情一区在线观看 | 香蕉国产亚洲精品va在线观 | 日本一本a高清免费 | 国产网站在线 | 噼里啪啦的视频免费观看 | 国产精品国语自产拍在线观看 | 成a人片在线观看中文 | 国产精品片在线 | 国产精品亚洲自在线播放页码 | 观看免费 | 色与欲影视天天看综合网 | 国产激情精品一区二区三区 | 国产线播放免费人成视频播放 | www.91city.cn| 亚洲欧美韩 | 国产欧美国日产在线播放 | 福利在线观看 | 国产在线午夜不卡精品影院 | 亚洲日韩欧美国产精品共 | 日本精品高清一区二区 | 国产精品自产拍在线观看 | 国产一区鲁鲁在线视频免费播放 | 亚洲国产剧情中文视频在线 | 国产片婬 | 亚洲韩国欧美一区二区三区 | 亚洲一区二区三区首页 | 精品午夜免费高清视频 | 亚洲成在人线中文字幕 | 免费视频在线观看cc | 色一情一乱一伦一区二区三区 | 国女精品爽爽一区二区 | 欧美日韩在线一区 | 亚洲人成免费网站 | 五月天激情四射网 | 欧美日韩成人精品 | 国产综合色在线视频播放线视 | 国产小视频在线高清播放 | 日本在线tv黄 |