zoukankan      html  css  js  c++  java
  • WebSocket配置中会遇到的一些问题

      今天来整理一些我在工作中配置上遇到的一些问题。

    Q1使用nginx代理后不能访问。报错WARNING:tornado.access:400 GET /ws (127.0.0.1) 0.79ms  或者连接失败后会反复发起连接请求。

      需要在nginx的location中新增如下配置

    # websocket

     proxy_http_version 1.1;

     proxy_set_header Upgrade $http_upgrade;

     proxy_set_header Connection "upgrade";

    Q2 跨域问题(spring websocket)

      经查阅官方文档springwebsocket 4.1.5版本前默认支持跨域访问,之后的版本默认不支持跨域,需要设置

    .setAllowedOrigins(“*”)

    @Override

    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {

    registry.addHandler(myWebSocketHandler(), "/echo.do").setAllowedOrigins("*").addInterceptors(new HandshakeInterceptor()); 

    registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("*").addInterceptors(new HandshakeInterceptor())

    .withSockJS(); 

    }

    Q3 *.do配置导致sockjs失效问题(spring websocket)

    web.xml中添加如下配置

    <servlet-mapping>

    <servlet-name>dispatcher</servlet-name>

    <url-pattern>/sockjs/*</url-pattern>

    </servlet-mapping>

    websocket配置类中路径中不加sockjs

    registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("*").addInterceptors(new HandshakeInterceptor())
    .withSockJS(); 

    前端调用时应加上sockjs

    websocket = new SockJS("http://127.0.0.1:8080/WebSocketTest001/sockjs/echo");

    Q4 一个websocketsession对应多个session的情况 
      这是由于尽管每次都能保证有一个websocketsession存在,但客户端没连接一次tomcat都建立一个链接,除非你在请求头里添加cookie:JSESSIONID=xxxxxx

    Q5 能收到客户端消息,后台也显示发送,但是客户端收不到 
      这个问题经我个人观察和猜测,应该是websocketsession没有成功关闭或者成功关闭但是和一个websocketsession对应多个session有关,因为我把上面的问题解决了之后,这个问题也没出现过了。

      如果你们觉得自己或者团队弄WebSocket这块比较麻烦,或者开发成本高,周期长的话,可以考虑用三方的。

    我这里只推荐个免费的 GoEasy 你们自己可以去看看。

    网址:www.goeasy.io

  • 相关阅读:
    selenium之 定位以及切换frame(iframe)
    selenium3+python3中的嵌套页面定位元素
    selenium3+python3隐式等待
    显示等待、隐式等待和强制等待的区别
    python3+selenium3自动化测试—元素等待-等待显示
    selenium3+python3自动化测试仿键盘操作(全选、复制、剪贴、粘贴)
    selenium3+python3自动化测试鼠标操作(双击、右键、悬停)
    python3+selenium3在百度首页中定位登录按钮并登陆
    在数据库中根据某个值递增更新(update)某个字段
    phpcms中content主要使用的详情列表关系
  • 原文地址:https://www.cnblogs.com/goeasycloud/p/9317427.html
Copyright © 2011-2022 走看看