首页 > 解决方案 > Springboot Websocket 数据包在浏览器之前发送但丢弃。解决方法?

问题描述

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

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

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

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

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

一些精度:

谢谢 :)

标签: javaspring-bootsockjs

解决方案


推荐阅读