怎么判断后端是否接收到前端推送的内容?
如何防止掉线?
怎么知道是否推送失败?
首先后端肯定是知道的,既然后端知道了,再又后端告诉前端不就好啦(就好像普通的 http 请求那样)。
题主能问出这个问题说明是知道 websocket “不稳定” 的。一般掉线的原因也很硬核,要么是前端(客户端)网络环境太差,直接断了,要么是后端服务挂了(连接数过多,机器扛不住)。
这些情况都是很难避免的,所以不建议用 websocket 传递常规的请求数据,一定要尽量做到关键业务分离,即使没有 websocket,产品还是可以用的。
引入心跳机制,大致的思路是:前端每隔一定时间向后端发送一个“探测包”,后端在收到这个消息后立马回应前端;如果某次探测包发出后却迟迟没有收到来自后端的回应,那么就可以断定当前 websocket 链接已经挂掉了,前端可自行断开并进行“重连”尝试。当然也要给重连设置一个最大的次数,超过后就不再尝试连接了,该省下的资源还是要省下的,别拿豆包不当干粮。
如题1.
2 回答705 阅读✓ 已解决
1 回答830 阅读✓ 已解决
651 阅读
客户端收到消息后做个回复呗.
掉线是防止不了的,但有回复机制的话就问题不大.