小鱼塘--自说自话的地方

  • 小玩意
  • 小想法
记录自己技术和想法地方
  1. 首页
  2. 网络
  3. 正文

c# websocket 访问 java sprint boot websocket服务器 出现keep-alive无效报错

24 4 月, 2023 1637点热度 0人点赞 0条评论
内容目录

背景

c# 自带websocket库访问java websocket服务器( javax.websocket.*;),客户端连接时候出现keep-alive的报错
websocket keep-alive报错

排查

因为本地代码知道哪里报错,通过c# 源代码分析找到下面代码
file

c# 判断返回的Connetion是否是Upgrade,但由于返回含有keep-alive导致报错。

原因

c# websocket客户端访问的服务器的时候带的Connection 就是Upgrade,keep-alive,火狐浏览器也只这个,但由于javax.websocket 返回头是客户端Connection,而c#检测响应头是否等于Upgrade这个东西,导致异常。

解决办法

成功的方案:
ngnix 修改握手响应头,这个方案可行,具体写法自己百度就可以了。

失败的方案:

  1. java 修改响应头,这个方案不行,因为javax.websocket还会修改Connection导致无法修改
  2. c# 修改头,发现Connection不可以修改,通过反射修改,但还是加keep-alive,GG

写本博客目的:不仅仅要输入,同时要输出,不断提高自己

标签: websocket
最后更新:24 4 月, 2023

小鱼儿

爱研究技术,爱玩LOL

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 小鱼塘. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

湘ICP备18005349号