我在Spring Boot上有一个WebSocket应用程序。我使用STOMP,并且当用户关闭选项卡(与WS断开连接)时,需要获取目标路径。我用@EventListener拦截了断开连接,或者从ChannelInterceptor扩展了连接并覆盖了preSend()

我尝试了很多方法-StompHeaderAccessor.getDestination()SessionDisconnectEvent.getMessage().getHeaders().get("simpDestination")等,但是它们都返回null。有没有可行的方法来走这条路?也许不使用拦截器,有所不同?

最佳答案

我无法谈及Spring的细节,但我认为从Stomp的角度来看,您所需的信息不可用。如Stomp 1.2 specification中所述,DISCONNECT框架不使用任何类型的目标标头。唯一可能的标头是receipt。收据的语义在here中说明。

07-24 09:49
查看更多