net core下WebSocket请求总是断开的解决方案

最近在写一个基于B/S架构的聊天功能,本地测试没发现问题,但是部署到生产环境后总是断开。

开始以为是后端超时问题,加大了KeepAliveInterval的时间。

cs 复制代码
        //启用WebSocket
            app.UseWebSockets(new WebSocketOptions
            {
                //心跳检测间隔
                KeepAliveInterval = TimeSpan.FromSeconds(90)
            });

然后,测试后发现只要没有主动发送聊天,一段时间后该断开还是断开。

然后通过AIge各种搜索,各种踩坑后找到最终原因:ws在连接时候,在一定时间内(不同浏览器还不一样),前端和后端必须保持通讯,否则浏览器会基于安全考虑断开连接。

通俗理解就是:前端需要给后端发起请求,后端也需要定时给前端回复信息。

所以解决办法就是前端通过ws协议发送内容,后端接受到回复信息,我写的数据格式数据:

前端每隔30秒发送json数据:

cs 复制代码
{"action":"ping"}

后端接收后回复数据

cs 复制代码
{"action":"pong"}

到此,ws协议断开的问题得到解决,希望可以帮助到大家。

相关推荐
HKT_China1 小时前
香港电讯河套区创新科技中心暨AI机楼揭幕,以网络基建助力北部都会区发展
网络·ai
云边云科技_云网融合2 小时前
案例分享 | 某运动零售品牌多云治理实战:一套框架解决权限失控、网络混乱与成本黑箱
网络·零售
Liuqy-052 小时前
IO模型与并发服务器
服务器·网络·select·多线程·epoll·并发服务器·io多路复用
小园子的小菜2 小时前
Netty 核心组件 Channel、ChannelHandler 与简易 RPC 架构实战详解
网络协议·rpc·架构
梅孔立3 小时前
Docker 容器网络不通:Tomcat 无法解析 MySQL、Nginx 无法反代 Tomcat 的生产级排查与治理
网络·docker·tomcat
YWamy10 小时前
如何降低RTC SDK在复杂网络环境下的运行成本
网络·音视频·实时音视频
北京盛世宏博11 小时前
信创国产化智慧档案馆管库系统:十二防一体化管控平台落地笔记
网络·方案·温湿度·智慧档案馆建设
w-w0w-w11 小时前
SQL注入
网络·数据库·sql