Websocket端口被占用/无法使用

编辑
  • 文档创建者:jiangsr
  • 浏览次数:6415次
  • 编辑次数:21次
  • 最近更新:Carly 于 2019-12-05
  • 1. 概述

    WebSocket 是服务器给浏览器主动推送消息的一个端口,主要用于刷新 token、用户被踢出、平台消息、内存和cpu显示、平台日志处当前系统在线人数、数据连接编辑状态的确定,不允许多人同时编辑。Websocket 端口被占用或无法使用时,将对用户的使用造成困扰。

    怎么看 Websocket 有没有连接成功?

    1)看智能运维>内存管理的两张图片能不能出来,出来就表示连接成功了

    2)F12 打开控制台,输入Dec.socket.connected,如果是true表示连接成功

    3)F12 打开控制台,如果有关于 38889 之类 socket 端口的报错,且最后出现了connect error,那就是没有连接成功。

    2. 端口被占用

    2.1 问题描述

    有两种情况下会出现 WebSocket 端口被占用的问题:

    1)在一个机器上同时安装了 FineReport10.0 设计器与服务端工程,平台配置外接数据库后会出现端口被占用问题。

    2)当一台服务器上部署多个工程时,也会出现 Websocket 端口冲突的问题。

    2.2 解决方案

    用户需要手动修改 websocket 的端口,解决端口冲突问题。

    在配置数据中修改 WebSocket 端口。

    提供给 Web 服务器的端口范围应在1024~65535之间

    WebSocket 端口 ID使用范围VALUE作用
    WebSocketConfig.port单机使用

    端口范围应在1024~65535之间

    • FineRepot 默认值 38888

    • FineBI 默认值 48888

    单机工程的websocket端口。

    未手动配置时使用默认值。

    WebSocketConfig.requestPort集群使用

    端口范围应在1024~65535之间

    • FineRepot 默认值 38889

    • FineBI 默认值 48889

    集群工程的websocket转发端口。

    未手动配置时使用默认值。

    注:2019-09-27 及之前版本的 JAR 包,转发端口生效的字段为 WebSocketConfig.requestPort

           2019-09-27 之后的 JAR 包,转发端口生效字段为 WebSocketConfig.requestPorts

    说明:

    1)单机工程时,防火墙要开放WebSocketConfig.port的端口,集群工程时,防火墙要开放WebSocketConfig.requestPort的端口,并且要在负载均衡层面配置 Websocket 的转发策略为粘滞,详情请参见 负载均衡配置指导 。

    2)当一台服务器部署了多个工程,WebSocketConfig.port的值可以设置为数组[48886,48887,48888](具体端口根据实际情况确定,要部署几个节点就数组中就至少需要几个不重复的值),这样每个节点都会选择当前可用的端口,从而不会因为端口占用而导致服务器无法启动。

    2.3 操作示例

    以单机工程示例:

    1)未 迁移外置数据库

    修改报表服务器使用的配置数据库 FineDB,将 fine_conf_entity 表中的 端口 ID,调整值为 40000。具体如下表所示:

    修改步骤请参见:报表内置 HSQL 数据库 FineDB


     表ID  值
     fine_conf_entity WebSocketConfig.port40000
    WebSocketConfig.requestPort40000

    2)迁移了外置数据库

    可以直接使用 navicat 等数据库管理软件来修改上面的字段。

    注:端口号的值不要使用远程端口39999

    注:两个端口号值建议设置为不一样,设置不一样时 requestPort  为备用端口

    注:2019-09-27 及之前版本的 JAR 包,转发端口生效的字段为 WebSocketConfig.requestPort

           2019-09-27 之后的 JAR 包,转发端口生效字段为 WebSocketConfig.requestPorts

    2.4 注意事项

    1)集群模式下修改websocket端口时,也参照上面的步骤进行修改,修改完毕后需要同步修改负载均衡的websocket配置。

    2)如果忘记使用的是哪个外置数据库,可以在WEB_INF/config文件夹中的 db.properties 中查看数据库信息。

    3)目前 2018.10.30 号之后的 JAR 在同一台设备中不可以同时启动设计器和 Tomcat,上述处理方法同样适用

    4)使用设计器切换远程时:要保证设计器本地和服务器工程中的jar包一致,要不然也会出现切换远程工作目录卡死现象 

    注:设计器 2018.11.6 及之后的JAR,10.0 工程有两个端口,一个是容器的端口:默认为 8075,另一个是 WebSocket:默认为 38888。

    3. 端口无法使用

    3.1 版本

    报表服务器版本

    JAR 包

    socket无法使用备用方案插件版本

    10.02019-12-06v1.0

    3.2 问题描述

    决策平台采用 WebSocket 通信方式实现 emit(推送)和 on(监听)等相关功能,但必须新增端口。

    有些用户不允许额外开端口,转发方案也无法支持,此时该怎么办呢?

    3.3 解决方案

    若无法开放额外端口或不允许使用 socket,可以采用socket无法使用备用方案插件,将采用 ajax 轮训方式实现必要功能。

    3.4 插件安装

    点击下载插件:socket无法使用备用方案 

    设计器插件安装方法参照 设计器插件管理

    服务器安装插件方法参照 服务器插件管理

    附件列表


    主题: 部署集成
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]