智能燈控系統(物聯網),需求:網頁直接控制設備。領導(非技術)要求純靜態網頁,無後端服務,詢問WebSocket能否像Socket一樣直接通信。
| 維度 | TCP Socket | WebSocket |
|---|---|---|
| 協議層級 | 傳輸層 (Layer 4) | 應用層 (Layer 7),基於HTTP升級 |
| 客戶端 | 任意TCP客戶端 | 瀏覽器(JS API)或支援WS協議的客戶端 |
| 連接建立 | 三次握手 | HTTP握手升級 |
| 數據幀 | 字節流 | 文本/二進制幀 |
| 跨域限制 | 無 | 受同源策略/Origin校驗 |
┌─────────┐ WebSocket ┌──────────────┐ TCP/MQTT ┌────────┐
│ 瀏覽器 │ ←────────────────→ │ 後端服務 │ ←───────────────→ │ 智能燈 │
│ (靜態頁) │ (ws://server) │ (Node/Java/Go)│ (設備協議) │ (設備端)│
└─────────┘ └──────────────┘ └────────┘
▲ │
│ ┌───────────┴───────────┐
│ │ 鑒權、業務邏輯、設備管理、數據持久化 │
└───────────────────┘ │
▼
┌──────────────┐
│ 關係/時序DB │
└──────────────┘
結論:WebSocket解決了瀏覽器雙向通信問題,但後端服務不可或缺。向領導解釋:「靜態頁面只是界面,大腦在後端。」