当前位置:首页 >  站长 >  编程技术 >  正文

WebSocket配置中会遇到的一些问题

 2020-01-17 17:49  来源: A5用户投稿   我来投稿 撤稿纠错

  【推荐】海外独服/站群服务器/高防

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

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中添加如下配置

dispatcher

/sockjs/*

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 你们自己可以去看看。

希望这些问题的解决方法对大家有帮助

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

相关标签
技术
服务器软件

相关文章

  • 入夏以来,nginx中国首场技术盛宴!nginx社区线下沙龙-北京专场圆满举办

    2002年,一位名叫IgorSysoev来自“战斗民族”俄罗斯的极客写出了一个叫NGINX的HTTP和反向代理web服务器,也许那时他也不曾想过,19年后的NGINX会成为全球最受欢迎的开源产品之一,和被大家所公认的那个“让产品在支持高并发请求的同时保持高效的服务”——“最好的选择”。

  • TurboEx软件,国产化邮件系统改造优质之选

    在我国金融、能源、交通、政府等行业部门的生产、调度、管理、办公等重要信息系统中,硬件和软件系统主要依赖国外的产品品牌,很多行业的重要数据存放于国外品牌的软硬件设备上,自主可控性差,存在着极大的安全保密隐患。

    标签:
    服务器软件
  • MongoDB全球云端技术盛会MongoDB.live

    MongoDB全球云端技术盛会MongoDB.live,将于北京时间6月9日22:00正式开启,大会将以在线直播+按需学习相结合的方式,面向全球开发者、架构师等MongoDB用户和爱好者免费开放

    标签:
    云计算
    技术
  • ECC+RSA双证书解决方案

    ECC是EllipticCurvesCryptography的缩写,意为椭圆曲线密码编码学。和RSA算法一样,ECC算法也属于公开密钥算法。最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。

    标签:
    技术
  • 60位嘉宾13个主题带你瞭望大前端新技术,GMTC深圳成功举办

    GMTC关注前端、移动、AI应用等多个前沿技术领域及实践经验,旨在通过技术趋势研讨与前沿案例剖析,促进全球技术交流,推动国内技术升级。本届GMTC为期4天,包括两天的会议和两天的培训课,主要面向各行业前端、移动开发、AI技术感兴趣的中高端技术人员。

    标签:
    技术
    大会

热门排行

信息推荐