我正在使用Spring會話與Hazelcast和Spring Websockets。由於我不需要clustarization,因此我使用MapSessionRepository
。但它不會在會話過期或會話刪除時觸發事件。我想要的是聽取SessionExpiredEvent
,然後立即通過websocket斷開用戶連接。所以,我有兩個問題:與榛色會議事件觸發的春季會議
MapSessionRepository
不燒成所需事件(SessionExpiredEvent
等)我不知道怎麼使用過期的HTTP會話發送的WebSocket通知。我需要像
simpMessageTemplate.convertAndSendToUser()
之類的東西。 但我怎麼能得到用戶?
所以我能看到的唯一一個變體就是在事件觸發的情況下爲SessionRepository<ExpiringSession>
編寫自己的實現。我希望你能理解我的問題。提前致謝。
謝謝你的迴應!那麼websockets呢?在會話過期後,Spring是否會自動斷開過期的websocket會話? – jahra
我的意思是我想用'simpMessagingTemplate.convertAndSendToUser'通過websocket向客戶端發送關於過期會話的通知,但無法想象如何去做 – jahra
關於WebSocket集成 - 是的,WebSocket會話在SessionDestroyedEvent上關閉(帶一個看看處理它的'WebSocketRegistryListener')。至於斷開連接處理,我建議你看一下[WebSocket示例](http://docs.spring.io/spring-session/docs/1.2.2.RELEASE/reference/html5/guides/websocket。 html)(位於[這裏](https://github.com/spring-projects/spring-session/tree/1.2.2.RELEASE//samples/websocket) - 提示:搜索'WebSocketDisconnectHandler')。 –