首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

海康威視監控 Web 檢視系統 (一):需求分析、技術選型與架構演進

     編輯:關於.NET

專案背景

公司需將公共區域監控畫面開放給員工瀏覽。兩大限制:

  1. 網段隔離:員工網段與監控設備網段物理隔離,無法直連。
  2. 設備連線上限:海康攝像頭單機最多支援 6 個並發客戶端,遠低於員工人數。

技術選型與原型驗證

  • 海康官方 SDK (C# Demo 完整) 提供登入、預覽、回調取流、播放解碼全套介面。
  • 快速建立原型:WinForms 呼叫 SDK 取流 → Socket 轉發 → 另一 WinForms 接收播放。驗證成功。

架構演進路徑

原型驗證 → 重構優化 → 壓力測試 → 發現瓶頸 → 分散式部署 → 再測試 → 上線

最終上線架構

部署架構圖

  • Web 伺服器:提供頁面、ActiveX 下載、通道資訊查詢 (ServerHandler.ashx)。
  • 視訊中轉伺服器叢集:多台獨立節點,各連接一台/多台監控設備,Socket 分發視訊流。
  • 客戶端瀏覽器:載入 ActiveX,向中轉伺服器建立長連線接收解碼播放。

資料流序列圖

序列圖

  1. 中轉伺服器持續從設備拉取視訊流緩存本地。
  2. 用戶開啟頁面 → Web 伺服器回傳可用中轉伺服器 IP:Port。
  3. ActiveX 直連中轉伺服器接收資料 → SDK 解碼 → PictureBox 渲染。

已知架構缺陷 (留待二期解決)

  • 無中轉節點健康檢查,可能分發到故障節點。
  • 節點間無通訊、無管理節點,無法實現負載均衡。
  • 中轉節點數超過設備連線上限 (6) 時無法擴容 (需引入多級中轉或串流媒體伺服器)。

方法論實踐

專案遵循輕量迭代循環:

  1. 建立原型驗證可行性
  2. 重構優化代碼結構
  3. 壓力測試找瓶頸
  4. 架構演進解決瓶頸
  5. 循環 2-4 直到上線

這套「原型→重構→測試→演進」的簡單方法論,有效控制風險、避免過度設計。

下一篇預告

第二篇將詳細實作中轉伺服器端:SDK 取流回調、Socket 非同步分發、多客戶端管理、CPU 保護機制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved