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

nginx代理WebSocket

admin
2025年6月28日 22:21 本文熱度 245

配置

HTTP/1.1協議中Upgrade機制可以將http升級到WebSocket,實現客戶端與服務端的雙向通訊。

客戶端需要升級協議時在請求頭包含Upgrade、Connection字段。

如果服務端同意升級連接,就會返回101狀態碼和一個Upgrade標頭字段,Upgrade字段內容為要切換到的協議。

如果服務器不能升級連接,返回一個常規響應,如200 ok。

nginx實現代理WebSocket,在轉發請求時需要在請求頭中包含Upgrade、Connection兩個字段。

Upgrade表示希望升級到的協議,值從客戶端請求中取。

Connection值為upgrade時表示希望升級的協議,為close時表示關閉連接。配置案例:

map $http_upgrade $connection_upgrade {
 # 客戶端請求頭中存在Upgrade字段時,$connection_upgrade變量值為upgrade
 default upgrade;
 # 客戶端請求中沒有Upgrade,變量值為close
 '' close;
}

upstream proxy_websocket {
 server 192.168.1.16:6066;
}

server {
 listen 6066;
 location / {
  proxy_pass http://proxy_websocket;
  # 只有HTTP/1.1協議提供Upgrade機制,HTTP/2 明確禁止使用此機制
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection $connection_upgrade;
 }
}

驗證

  1. 安裝依賴包 npm install ws

  2. 搭建WebSocket服務,server.js:

    const { Server } = require("ws");

    const server = new Server({ port: 6066 });

    console.log("WebSocket服務監聽6066端口...");

    server.on("connection", (client) => {
      console.log("建立新連接");
      client.on("message", (msg) => {
        console.log("收到客戶端消息:%s", msg);
        // 給客戶端發送消息
        client.send(Math.random());
      });

      client.on("close", () => {
        console.log("與客戶端的連接斷開");
      });
    });

  3. 啟動服務 node server.js

  4. WebSocket客戶端,client.js:

    const WebSocket = require("ws");

    // WebSocket連接nginx代理服務器192.168.1.18
    const socket = new WebSocket("ws://192.168.1.18:6066/");

    socket.on("open", () => {
      console.log("與WebSocket服務端連接成功");
      socket.send("hello world");
    });

    socket.on("message", (data) => {
      console.log("收到消息:" + data.toString());
    });

    socket.on("close", () => {
      console.log("WebSocket關閉");
    });

    socket.on("error", (err) => {
      console.error("WebSocket錯誤:", err);
    });
  5. 啟動客戶端,node client.js


閱讀原文:原文鏈接


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

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日本一区二区免费色色 | 日韩国产欧美精品一区二区 | 亚洲天堂一区二区中文字幕 | 亚洲日本中文字幕一区二区三区 | 制服肉丝亚洲中文字幕 | 亚洲精品私拍国产 |