websocket接收不到服务器端消息排查过程

WebSocket通信中A_client接收断断续续:问题诊断与解决
本文探讨了客户端A在通过服务B制作书籍并保存后,由于嵌套IFRAME和WebSocket通信的问题,导致A_client接收到服务B消息不稳定的状况。作者详细描述了问题排查过程,包括错误推断、子页面与父页面交互、服务A接收延迟等,并最终通过重连机制确保了消息稳定接收。
问题场景

客户端A点击制作书籍,跳转到服务B进行制作书籍,服务B点击保存书籍后,需要通知服务A进行页面刷新。现在问题是客户端A不能进行同步刷新。

服务关系图

在这里插入图片描述

B_clinet保存后无法发送消息到A_server

(怎么确定A_server接收不到消息忽略)
页面布局是index.html嵌套IFRAME,IFRAME页面展示书籍内容。
websocket是在index页面进行初始化,保存后在IFRAME页面直接调用websocket.send(message),子页面是无法直接调用父页面对象的。
需要加上window.parent.xxx进行调用

A_server接收到消息后进行转发到A_clinet

B_clinet发送消息到A_server已经解决了,这时A_server就可以接收到消息,
A_server对消息事件进行广播。
但是A_clinet却接收不到消息,偶尔能接收到,通过console打印日志,发现创建和关闭能正常打印,唯独消息监听不能打印(具体原因不详)。
现在就非常奇怪了,页面加载完成之后偶尔能接收到消息,接收到消息后,不多久又不能接收消息!感觉像断开了连接一样。
有了这个想法就开始测试,在error和close方法中调用一个reconnect方法重新连接,果然消息能正常接收。

结论:websocket接收到消息后容易断开连接。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值