问题场景
客户端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方法重新连接,果然消息能正常接收。