為了降低Websocket配置難度,5.1.20 及之後版本的BI工程,新增了一個容器Websocket方案。
該方案使用Web容器自帶的WebSocket進行連結,埠複用http埠。使用者無需對外開啟埠,無需任何手動配置。
當工程支援容器Websocket方案時,前臺存取會優先使用新方案,失敗後使用老socket.io方案進行重試。
容器Websocket方案的執行,需要滿足以下一些條件和配置。
容器Websocket方案,僅支援以下容器(容器環境一般是由使用者自行準備,非FineBI自帶)
支援Tomcat7.0.47~9.0 版本
需要修改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">
eap6.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設定」。
1)修改 http 配置
在每個 location 塊下新增以下語句:
proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $http_connection;
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,需要刪除以上內容。如下圖所示:
無需額外配置,原ws配置保留/刪除不影響容器化WebSocket方案生效。
容器化WebSocket方案支援 Chrome、FireFox、Edge、IE10 及以上版本瀏覽器。
容器化WebSocket方案不支援 IE9 及以下版本瀏覽器
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙