日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

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

HTTP 長輪詢與 WebSockets

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

HTTP 長輪詢

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

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

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

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

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

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

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

優(yōu)點(diǎn)和缺點(diǎn)

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

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

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

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

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

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

WebSockets 瀏覽器

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

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

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

例如,您可以使用 WebSockets 來:

  • 強(qiáng)大的實時聊天體驗。

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

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

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

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

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

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

WebSocket 優(yōu)勢

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

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

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

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

WebSocket 的缺點(diǎn)

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

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


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