内容目录
背景
c# 自带websocket库访问java websocket服务器( javax.websocket.*;),客户端连接时候出现keep-alive的报错
排查
因为本地代码知道哪里报错,通过c# 源代码分析找到下面代码
c# 判断返回的Connetion是否是Upgrade,但由于返回含有keep-alive导致报错。
原因
c# websocket客户端访问的服务器的时候带的Connection 就是Upgrade,keep-alive,火狐浏览器也只这个,但由于javax.websocket 返回头是客户端Connection,而c#检测响应头是否等于Upgrade这个东西,导致异常。
解决办法
成功的方案:
ngnix 修改握手响应头,这个方案可行,具体写法自己百度就可以了。
失败的方案:
- java 修改响应头,这个方案不行,因为javax.websocket还会修改Connection导致无法修改
- c# 修改头,发现Connection不可以修改,通过反射修改,但还是加keep-alive,GG
写本博客目的:不仅仅要输入,同时要输出,不断提高自己