容器Websocket方案

  • 文檔創建者:Suki陈
  • 編輯次數:3
  • 最近更新:Jack.Li 于 2025-07-15
  • 1. 概述

    1.1 版本

    FineDataLink 版本
    4.0

    1.2 應用場景

    為了降低 Websocket 配置難度,FineDataLink 工程支援容器 Websocket 方案。

    該方案使用 Web 容器自帶的 WebSocket 進行連結,埠複用 http 埠。使用者無需對外開啟埠,無需任何手動配置。

    當工程支援容器 Websocket 方案時,前台存取會優先使用新方案,失敗後使用老 socket.io 方案進行重試。

    2. 方案執行步驟

    容器 Websocket 方案的執行,需要滿足以下一些條件和配置。

    2.1 容器環境檢驗

    容器 Websocket 方案,僅支援以下容器(容器環境一般是由使用者自行準備,非 FineDataLink 自帶)

    容器版本說明
    Tomcat

    支援Tomcat7.0.47~9.0 版本

    -
    WebLogicWeblogic12c及以上版本

    需要修改web.xml名稱空間,其他不

    <!--修改web-app如下-->
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
       id="WebApp_ID" version="3.1">

    WebSphereWebSphere9及以上版本-
    JBosseap6.4+

    wildly9+

    eap6.4需要修改配置

    web-inf下新增jboss-web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!--Enable WebSockets -->
    <jboss-web>
       <enable-websockets>true</enable-websockets>
    </jboss-web>

    修改${hboss_home}/standalone/configuration/standalone.xml

    將protocol="HTTP/1.1"修改為protocol="org.apache.coyote.http11.Http11NioProtocol"

    若當前工程所在容器環境滿足條件,則「管理系統>系統管理>標準」頁面不顯示「WebSocket設定」。

    1709025592t4WD.jpeg

    2.2 負載均衡配置

    2.2.1 Nginx

    1)修改 http 配置

    在每個 location 塊下新增以下語句:

    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;

    1709025473EF4v.png

    2)需檢查 Nginx 是否進行過 WebSocket 配置

    開啟 nginx.conf 檔案,查看是否出現以下內容:

    server {  
            #此處為websocket埠,如果是叢集部署,FineReport工程為38889,FineBI工程為48889
            listen 38889;              
            server_name 192.168.6.181;
            location / { 
                 proxy_http_version 1.1;
                 proxy_pass http://WBS.com;
                 proxy_connect_timeout 75;
                 proxy_read_timeout 400;
                 proxy_send_timeout 400;
                 #升級目標為$http_upgrade 值實際為websocket
         proxy_set_header Upgrade $http_upgrade;
                 #Connection設定升級
         proxy_set_header Connection "upgrade";
                 }
            }

    若未出現以上內容,即未在 Nginx 中配置過 WebSocket ,可直接使用容器化 WebSocket 方案。

    若出現以上內容,即曾在 Nginx 中配置過 WebSocket,需要刪除以上內容。如下圖所示:

    17090255193Epb.png

    2.2.2 traefik

    無需額外配置,原ws配置保留/刪除不影響容器化WebSocket方案生效。

    2.2.3 f5

    無需額外配置,原ws配置保留/刪除不影響容器化WebSocket方案生效。

    2.3 瀏覽器環境

    • 容器化 WebSocket 方案支援 Chrome、FireFox、Edge、IE10 及以上版本瀏覽器。

    • 容器化 WebSocket 方案不支援 IE9 及以下版本瀏覽器


    附件列表


    主題: 管理系統
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!