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

Web 實時通信:從短輪詢到 WebSocket

admin
2025年8月15日 14:2 本文熱度 528

在互聯網早期,網頁像一本翻頁雜志:用戶點擊,瀏覽器請求,服務器響應,頁面刷新。當產品經理提出“實時聊天”“股價閃動”“庫存秒變”這些需求時,HTTP 的“請求—響應”模型立刻顯得力不從心。于是,開發者經歷了一場從“笨拙輪詢”到“優雅全雙工”的技術進化。今天,就讓我們再走一遍這條路。

一、短輪詢

思路簡單到極致:

客戶端每隔 X 秒發一次 Ajax,問“有新消息嗎?”服務器答“沒有”——循環往復。

偽代碼

痛點

  • 空包占比高:99% 的請求是無用往返。

  • 連接反復建立:TCP 三次握手 + 四次揮手成了“日常運動”。

  • 延遲不可控:最快也要等到下一個輪詢周期。

短輪詢就像給服務器打“騷擾電話”,簡單,卻低效。

二、長輪詢

聰明的工程師想到:

把電話“掛起不掛線”。客戶端發起 Ajax,服務器夯住這個連接,直到真的有消息才返回;客戶端收到后立即再掛一個,如此循環。

優勢

  • 零空包:每次響應都攜帶數據。

  • 減少連接數:TCP 復用率提高。

新問題

  • 超時風險:瀏覽器/代理可能粗暴切斷長連接。

  • 資源懸掛:服務器需要為大量空閑連接維持線程或內存。

  • 實時性仍受“掛起窗口”限制。

長輪詢把“騷擾電話”變成了“占線等待”,但線路資源依舊吃緊。

三、WebSocket

HTML5 帶來了 WebSocket——基于 TCP 的全雙工通道

握手階段仍用 HTTP,升級協議后,雙方可隨時推送數據幀

1. 握手:HTTP 的極限操作

客戶端:

服務器返回 101:

狀態碼 101 表示:協議升級完成。此后數據幀不再走 HTTP。

2. 通信:幀級協議,雙向飛馳

  • **幀(frame)**是最小單位,攜帶 payload、opcode、掩碼。

  • **流(stream)**由幀組成,任何一方都可主動發送。

  • 無隊頭阻塞:不同消息并行交錯,靠幀頭 id 區分歸屬。

3. 代碼示例(Node + 前端)

前端

Node 后端(ws 庫)

四、使用場景與權衡

閱讀原文:點擊這里


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

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
在线免费看永久AV片 | 日本中文字幕视频久 | 玖玖爱国产在线视频 | 日韩中文字幕图片 | 亚洲人AV在线免费观看 | 亚洲日韩久热中文字幕 |