我在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。