WebSocket連結失敗

  • 文檔創建者:Suki陈
  • 編輯次數:6
  • 最近更新:Nikozhan 于 2025-07-15
  • 1. WebSocket 連結失敗現象

    1)管理者登入 FineDataLink 資料平台,點選「管理系統>資料連結」,進入資料連結編輯介面,可能存在多人同時編輯同一個資料連結的情況。

    頂部彈出提示資訊:Socket 未連結,可能存在多人同時編輯造成衝突,相關埠可能未開放

    2)管理者登入 FineDataLink 資料平台,點選「管理系統>智慧維運>負載管理」,「實時負載」Tab 下「負載」、「記憶體利用率」和「CPU 利用率」三張圖片顯示空白。

    頂部彈出提示資訊:Socket 未連結,實時記憶體顯示等異常,相關埠可能未開放

    3)踢出登入失效,不能實時踢出,在框架內顯示登入頁面,即沒有跳出框架直接跳轉到登入介面。如下圖所示:

    注:該問題出現的場景:單一登入踢出、禁用使用者、修改使用者密碼、修改認證方式、切換同步匯入、平台使用用戶禁用使用者/開啟限制開關,取代 Lic 等。

    4)使用者收不到右下角訊息彈窗且小鈴鐺處無訊息提示,但是可以點選小鈴鐺進入訊息面板查看。

    5)登入逾時,無法獲取正確的 token 有效期

    使用者登入 FineDataLink 資料平台時,不勾選「保持登入狀態」。登入逾時設定為 1 小時,若使用者在 3 點登入,3點20 分在平台進行了操作。

    • WebSocket 連結成功,應為 4 點 20 被踢出(平台無操作情況下)。

    • WebSocket 未連結,則不能重新獲取 token ,4 點即被踢出。

    使用者登入 FineDataLink 資料平台時,勾選「保持登入狀態」,預設無操作 14 天后被踢出,若 14 天內在平台上操作,不能重新獲取 token ,依舊 14 天后被踢出。

    管理者登入平台後,頂部彈出提示資訊:Socket 未連結,使用程式中將無法保持登入狀態,相關埠可能未開放

    6)在插件商城安裝或者刪除插件時沒有成功或者失敗的提示。

    7)任務運作日誌空白。

    2. 確認 Websocket 連結失敗

    使用者可透過三種方法確認 Websocket 連結失敗。

    1)管理者登入 FineDataLink 資料平台,查看「管理系統>智慧維運>負載管理>實時負載」的三張圖片,不顯示則未連結。

    2)F12 開啟控制台,輸入「Dec.socket.connected」,如果是「false」表示未連結。

    3)F12 開啟控制台,如果有關於 58889(伺服器預設埠號) 之類 Socket 埠的報錯,那就是沒有連結成功。

    3. 直接存取工程連結失敗

    請使用者根據下文依次排查並優化。

    3.1 確認埠是否被佔用

    透過「手动修改fine_conf_entity 」預覽 fine_conf_entity 表中的以下欄位,查看 WebSocket 埠/轉發埠。


    參數名4.0.6及之後版本的參數預設值4.0.6之前版本的參數預設值
    Websocket 埠WebSocketConfig.port["58888", "59888"]["38888", "39888"]
    Websocket 轉發埠WebSocketConfig.requestPorts58889
    38889

    確認埠/轉發埠是否被其他進程佔用,若被佔用且進程很重要,請取代其他可用埠。

    超級管理者可透過填報的方式修改 WebSocket 埠/轉發埠。重啟伺服器後設定生效。

    注1:從 4.0.6 之前的版本升級到 4.0.6 及之後的版本,WebSocket埠/轉發埠不會改變,以之前的版本為準。

    注2:修改 fine_conf_entity 表欄位值的方法請參考 手动修改fine_conf_entity 。

    注3:超級管理者可以透過「fine_conf_entity視覺化配置」查看、修改 WebSocket 埠,但不支援透過該插件查看、修改 WebSocket 轉發埠。

    3.2 確認埠配置是否未生效

    WebSocket 埠/轉發埠的設定有一些注意事項,請確認是否正確的設定了埠號:

    1)埠號可設定範圍:1024~65535,若為多個值,設定格式為:[埠號1,埠號2,埠號3]。

    2)建議「WebSocket埠」設定多個值,作為備用,防止一台伺服器部署了多個工程,埠被佔用。

    3)不要設定埠號為伺服器遠端連結埠 3389。

    4)若 WebSocketConfig.port、WebSocketConfig.requestPorts 欄位後面有空格,配置不生效。

    5)若 WebSocketConfig.port、WebSocketConfig.requestPorts 大小寫錯誤,配置不生效。

    3.3 確認埠是否對外開放

    排查步驟:

    若確定 WebSocket 埠/轉發埠未被其他進程佔用,請確定設定的埠是否對外開放。

    • linux:nc -vz -w 2 [ip] [port]

    • windows:telnet 伺服器ip websocket埠

    解決方法:

    1)開放伺服器的防火牆埠限制。

    2)開啟阿里雲/華為雲/微軟雲伺服器的安全組埠限制。

    3)關閉阿里雲的健康檢查。

    3.4 確認是否為HTTPS環境

    憑證配置的 HTTPS 環境需要配置 WebSocket,參考文檔:HTTPS配置WebSocket

    1)金鑰路徑:

    • Tomcat 配置中 server.xml 裏面絕對路徑/相對路徑都可以。

    •  FineDataLink 資料平台中「系統管理>標準> https 設定」中「SSL 金鑰路徑」只支援絕對路徑。

    2)設計器不支援配置 HTTPS,EXE 安裝的 BI 不支援配置 HTTPS。

    4)工程配置了 HTTPS,HTTP 和 HTTPS 都可以存取工程。但是 WebSocket 不能同時支援,HTTPS 連結正常,HTTP 就會連結失敗。

    3.5 JAR 包衝突

    問題描述:

    工程下的 JAR 包出現衝突時,會出現伺服器部署精靈,提示「WebSocket 埠異常」,如下圖所示:

    解決方法:

    刪除造成衝突的 JAR 包,殺死工程的進程,等待 2 分鐘埠釋放後,重啟工程。

    如果 Apache Impala  是從官網下載的,不要將 slf4j-log4j12-1.5.11.jarslf4j-api-1.5.11.jar 放到%FineReport%\webapps\webroot\WEB-INF\lib下,否則會造 Websoket 埠異常。

    3.6 確認伺服器請求是否太慢

    Websoket 連結時間程式碼裏設定的為 20s,請求時間超過的話,直接判定 Websoket 連結失敗。

    3.7 查看控制台報錯

    F12 開啟控制台,Websoket 常見報錯及可能原因如下:

    • net::ERR_SSL_PROTOCOL_ERROR:工程配置了 HTTPS,Websoket 沒有配置。

    • net::ERR_EMPTY_RESPONCE:伺服器配置了 HTTPS,但是用的http存取。

    • net::ERR_CONNECTION_REFUSED:埠未開放或者該埠沒有被監聽。

    • net::ERR_CONECTION_TIMEOUT:網路問題,域名解析速度慢。

    3.8 瀏覽器快取

    問題描述:同一台電腦上不同瀏覽器存取工程,有的 Websoket 連結成功,有的連結失敗。

    解決方法:清理瀏覽器快取即可。

    4. 注意事項

    1)重啟工程時,需要殺死工程下運作的進程,等待 2 分鐘埠釋放後,再重啟工程,否則有可能重啟失敗。

    2)透過上文排查修改,Websoket 可正常連結後,僅能獲取之後的記憶體利用率和 CPU 利用率等資料,歷史資料無法恢復。

    附件列表


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