我在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中说明。