我在Spring Boot上有一个WebSocket应用程序。我使用STOMP,当用户关闭选项卡(与WS断开连接)时,我需要获取目标路径。我用@EventListener
拦截了断开连接,或者从ChannelInterceptor
扩展了连接并覆盖了preSend()
。
我尝试了多种方法-StompHeaderAccessor.getDestination()
,SessionDisconnectEvent.getMessage().getHeaders().get("simpDestination")
等,但是它们都返回null。有没有可行的方法来解决问题?也许不使用拦截器,有所不同?
答案 0 :(得分:1)
我无法谈论Spring的细节,但我认为从Stomp的角度来看,您所需的信息不可用。如Stomp 1.2 specification中所述,DISCONNECT
框架不使用任何类型的目标标头。唯一可能的标头是receipt
。 here说明了收据的语义。