相关文章推荐
低调的饭盒  ·  使用Git + ...·  1 年前    · 
重感情的冲锋衣  ·  fortran 90 ...·  1 年前    · 
率性的蚂蚁  ·  vue ...·  1 年前    · 
冷静的牛排  ·  Flask-SocketIO ...·  2 年前    · 

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接收到消息后容易断开连接。

问题场景客户端A点击制作书籍,跳转到服务B进行制作书籍,服务B点击保存书籍后,需要通知服务A进行页面刷新。现在问题是客户端A不能进行同步刷新。服务关系图B_clinet保存后无法发送消息到A_server(怎么确定A_server接收不到消息忽略)页面布局是index.html嵌套IFRAME,IFRAME页面展示书籍内容。websocket是在index页面进行初始化,保存后在IFRAME页面直接调用websocket.send(message),子页面是无法直接调用父页面对象的。需要加上 最近在把后台Golang版的 WebSocket 项目修改为 Java 版的 WebSocket 项目;由于没有Golang的代码,只能自己想办法硬猜该怎么写。 在踩了一堆坑后,终于基本写完了。以下是踩坑总结与解决办法。 二、问题描述 1.前后台的 WebSocket 通信,传递的是字节数组(byte[]),而不是String。 2.因此,后台使用wsSession.getAsyncRemote().sendText(string)给前台发送 消息 的话,前台会报错,无法解析。 3.后台尝试用ByteBuffer对象 最近新写了一个 Java WebSocket 后台,用来和前端通信;本来前端通过js是可以成功建立 WebSocket 连接的,但是前端使用 WebSocket 发给后台的 消息 ,后台却怎么也 收不到 。 以下是问题描述与解决办法。 二、问题描述 1.前端建立 WebSocket 连接的关键代码样例如下: var msg="abc123"; //var imUrl="wss://10.123.123.123:9999/api/im"; var imUrl="ws://10.123.123.123:9999/api/im <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </depende
最近因为项目原因,需要做服务器往前端的数据推送功能,开始使用了comet4j,不过使用时碰到一个问题,就是jsp页面的路径不再根目录下就无法获取到 服务器端 推送过来的数据,而我们也不能因为这个原因把页面全部搬到根目录下,所以就想着换个技术使用 WebSocket 来做这个数据的推送。       开始使用并没有遇到什么技术上的难处, 消息 推送也可以实现,可测试时发现要是有页面是从系统中新开的页面,也就是