历史版本4 :WebSocket连接失败 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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 打开控制台,如果有关于 38889(服务器默认端口号) 之类 Socket 端口的报错,那就是没有连接成功。

3. 直接访问工程连接失败编辑

请用户根据下文依次排查并优化。

3.1 确认端口是否被占用

通过「手动修改fine_conf_entity 」预览 fine_conf_entity 表中的以下字段,查看 WebSocket 端口/转发端口。

端口
参数名参数默认值
Websocket 端口WebSocketConfig.port["58888", "59888"]
Websocket 转发端口WebSocketConfig.requestPort58889
WebSocketConfig.requestPorts58889

确认端口/转发端口是否被其他进程占用,若被占用且进程很重要,请更换其他可用端口。

超级管理员可通过填报的方式修改 WebSocket 端口/转发端口。重启服务器后设置生效。

注1:修改 fine_conf_entity 表字段值的方法请参考 手动修改fine_conf_entity 。

注2:超级管理员可以通过「fine_conf_entity可视化配置插件」查看、修改 WebSocket 端口,但不支持通过该插件查看、修改 WebSocket 转发端口。

3.2 确认端口配置是否未生效

WebSocket 端口/转发端口的设置有一些注意事项,请确认是否正确的设置了端口号:

1)端口号可设置范围:1024~65535,若为多个值,设置格式为:[端口号1,端口号2,端口号3]。

2)建议「WebSocket端口」设置多个值,作为备用,防止一台服务器部署了多个工程,端口被占用。

3)不要设置端口号为服务器远程连接端口 3389。

4)若 WebSocketConfig.port、WebSocketConfig.requestPort、WebSocketConfig.requestPorts 字段后面有空格,配置不生效。

5)若 WebSocketConfig.port、WebSocketConfig.requestPort、WebSocketConfig.requestPorts 大小写错误,配置不生效。

6)WebSocketConfig.requestPort 和 WebSocketConfig.requestPorts 不能同时存在于 fine_conf_entity 表中,否则会出错。

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 利用率等数据,历史数据无法恢复。