1. 概述
1.1 版本
BI 服务器版本 | JAR 包版本 | 新增功能 |
---|---|---|
5.1 | - | - |
5.1 | 2019-11-08 | WebSocket 转发端口字段由 WebSocketConfig.requestPort改为 WebSocketConfig.requestPortS WebSocket 转发端口支持设置多个值 |
5.1.5 | 2020-09-02 | WebSocket 未连接时,管理员登录平台,去除顶部弹窗提示。 Websocket 未连接时,token可自动刷新 |
5.1.20 | - | 新增了一个容器Websocket方案,详情请参见:容器Websocket方案 |
1.2 功能简介
本文将从以下几点为大家介绍websocket。
1)为什么要设置websocket
2)不设置websocket会怎么样
3)怎么设置websocket
4)websocket设置不生效怎么排查
2. WebSocket的作用
WebSocket可以让服务器端主动向客户端推送数据。
在WebSocket API中,客户端和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
WebSocket 主要用于刷新 token、用户被踢出、平台消息、内存和 CPU 显示、平台日志处当前系统在线人数、数据连接编辑状态的确定。
3. WebSocket 端口配置
3.1 默认端口
FineBI 工程默认配置了 WebSocket 端口和 WebSocket 转发端口。
根据不同的工程环境,两个端口的生效顺序不完全相同。按照生效顺序,会依次尝试监听,如果有一个端口监听成功,则不再尝试其他端口。
端口 | JAR 包 | ID | 默认值 | 是否支持 设置多个值 |
---|---|---|---|---|
Websocket 端口 | - | WebSocketConfig.port | ["48888", "49888"] | 支持 |
Websocket 转发端口 | 2019-11-08 之前 | WebSocketConfig.requestPort | 48889 | 支持 |
2019-11-08 及之后 | WebSocketConfig.requestPorts | 48889 | 支持 |
3.2 配置方法
用户可根据自己的工程情况选择合适的 WebSocket 端口配置方法,详情请参见下表:
方案 | 场景 | 配置方法 |
---|---|---|
容器Websocket方案 | 5.1.20及之后版本,新增了一个容器Websocket方案 无需任何用户操作,系统可自动使用Web容器自带的WebSocket进行连接,端口复用http端口
| 容器Websocket方案 |
socket.io方案 | 单机环境配置 WebSocket 端口 | 单机配置WebSocket端口 |
集群环境配置 WebSocket 端口 | 集群配置WebSocket端口 | |
HTTPS 环境配置 Websocket 端口 | HTTPS环境配置WebSocket | |
仅对外开放一个端口 | 不额外给WebSocket对外开放端口 |
4. Websocket 连接失败
如果按照 3.2 节的 WebSocket 端口配置方法配置后,websocket仍然连接失败,请参考文档排查:WebSocket连接失败