• windows运行正常但是linux下程序在浏览器控制台console报websocket is closed before the connection is established


    原因:

    连接socket时需要通过IP获取到对应主机的域名来进行连接,此过程会相当耗时
    前端有一个超时时间,导致无法在规定时间内收到服务端消息而触发超时操作
    表现:

    windows及linux下可不同时出现,与DNS解析的配置有关
    浏览器console界面会打印大量websocket is closed 错误消息
    可能伴随着刷新很慢之类的相关异常现象
    解决方法:

    1 在hosts文件中添加对应IP的反解析,如:示例IP IP ,其中IP为服务机器的内网地址,无效则自己通过堆栈在某个地方debug代码来确认

       我是通过第一种办法解决的;
    
        sudo vim /etc/hosts  (通过hostnamectl获取机器名)
    
        追加一行
    
        内网IP 机器名全称 机器名(去掉.后缀)
    实例:
        192.168.0.11    AP-SHA-VM-P85.internal.sungard.corp AP-SHA-VM-P85

    2 重写SocketWrapperBase类的getLocalName方法,直接返回其私有属性localAddr。此处不做赘述,存在多个类可用于重写代码,根据需要自己合理选择
    3 修改DNS相关配置(可能还存在其他相关配置,个人没有找到方法1外的相关配置,故无法给出实际例子)
    推荐:

          卡顿的时候可以使用JDK自带工具进行分析

           获取程序进程号

    JPS
           获取当前程序的堆栈

    JSTACK PID > stack.log

    原文链接:https://blog.csdn.net/qq_36759091/article/details/99404743

  • 相关阅读:
    流量控制-QoS
    网关冗余-HSRP
    EIGRP负载均衡
    NAT负载均衡
    VLAN是什么
    交换机宽带优化、端口聚合
    二层安全之MAC Flooding解析与解决方法
    弱安全协议探测工具-sslciphercheck
    OpenSSL 与 SSL 数字证书概念贴
    【Linux安全】查看是否存在特权用户以及是否存在空口令用户
  • 原文地址:https://www.cnblogs.com/personsiglewine/p/13036159.html
Copyright © 2020-2023  润新知