Springboot Websocket 数据包已发送但在浏览器之前被丢弃解决方法?

问题描述

我有一个 Spring Boot 应用程序向客户端(SockJS、Angular)发送定期更新以显示内容。但是,有些数据包是Spring Boot根据日志发送的,但浏览器端从未收到。丢包发生在与服务器的直接连接上,因此网络上到客户端的数据包丢失很可能不是根本原因。

应用程序在代理(lighthttpd)后面,我目前不知道数据包是在代理之前还是在代理中丢弃。我怀疑代理有问题,但我没有真正的确认。

我们依赖于服务器系统设计,所以到目前为止我的选择:

  1. 希望服务器更新能够修复代理,如果这是根本原因
  2. 找到一种方法来调试数据包被丢弃的位置并将责任转移给服务器设计人员,或者指出有问题的 COTS
  3. 实施解决方法以使其正常工作

我目前正在挖掘选项 3,但我对 Spring Boot 的了解很少。 当前代码使用 SimpMessagingTemplate.convertAndSend(destination,payload) 将序列化数据发送到客户端。 我首先在寻找一种方法来从客户端确认收到数据包,如果一段时间后没有收到 ACK,则再次发送。 这种特性在 Spring Boot 中开箱即用吗? 你能想到其他解决方法吗?

一些精度:

  • 1 个客户端/服务器,始终。客户端是一个简单的接口,用于与通过 USB(USB 上的以太网)连接的设备进行交互
  • 目前该设备使用 Java 7 作为后端和 Spring Boot 1.3.0,应该很快更新到 Java 8。我不知道 Spring Boot 的更新是否可以解决这个问题。

谢谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)