首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >net core下WebSocket请求总是断开的解决方案

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

原创
作者头像
极光科技
发布于 2026-11-03 11:30:16
发布于 2026-11-03 11:30:16
1430
举报

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

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

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

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

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

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

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

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

代码语言:javascript
复制
{"action":"ping"}

 后端接收后回复数据

代码语言:javascript
复制
{"action":"pong"}

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档