微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。