带有hazelcast会话事件触发的Spring会话



我正在使用带有Hazelcast和Spring Websockets的Spring Session。因为我不需要集群化,所以我对MapSessionRepository使用hazelcast。但它不会在会话到期或会话删除时触发事件。我想要的是听SessionExpiredEvent,然后通过websocket立即断开用户。所以我有两个问题:

  1. MapSessionRepository未触发所需事件(SessionExpiredEvent等)

  2. 我不知道如何使用过期的http会话发送websocket通知。我需要simpMessageTemplate.convertAndSendToUser()之类的东西。但是我怎样才能获得用户呢?

所以我能看到的唯一一个变体是为SessionRepository<ExpiringSession>编写自己的实现与事件触发。我希望你理解我的问题。

Spring Session Hazelcast支持提供会话事件的发布。功能本身是使用SessionEntryListener实现的,因此请确保使用@EnableHazelcastHttpSession注释,它配置了Hazelcast集成所需的所有组件。

您可能也会感兴趣,即将到来的春季会话1.3(目前在1.3.0.M2)将为新的HazelcastSessionRepository提供一流的Hazelcast支持(除其他外,它将取代SessionEntryListener)。

最新更新