Spring Session中session的事件监听

Spring Session中session的事件监听,第1张

Redis版本>2.8

(默认spring session会自动开启该配置)

配置文件:notify-keyspace-events Ex

命令行:redis-cli config set notify-keyspace-events Egx

不需要自动开启该配置的话可以将如下配置加入到容器中

在spring-Session中session的创建、删除、过期都会接收到redis相关事件通知

spring-session中接收到相关通知后再由Spring发布相关ApplicationEvent(SessionCreatedEvent 、SessionDeletedEvent 、SessionExpiredEvent)

由spring-context提供的@EventListener注解即可实现相关事件的监听

Spring Session官方文档

将Redis消息转换为Spring的ApplicationEvent实现类:org.springframework.session.data.redis.RedisOperationsSessionRepository

Redis键空间通知

Spring-session启动失败

Spring-session redis启动失败

您好,session的存在和失效很难控制`

我当初是写了一个JS`每隔一段时间判断该session是否存在。勉强能用一下.大概也就这个办法`

function checkSession(){

if(<%=session.getAttribute("xxx")%>==null){

alert("session失效")

}

setTimeout("checkSession()",2000)

}

橛幸桓鯯essionManager(TUNIGuiSessionManger类)的属性,通过TUNIGuiSessionManger类的相关属性可以来监听web会话的开始与结束。如:UniServerModule.SessionManager.Sessions.OnSessionStart := OnSessionStartUniServerModule.SessionManager.Sessions.OnSessionEnd := OnSessionEndprocedure TFrmMon.OnSessionStart(Sender: TIdHTTPSession)varRemoteIp,SessionID:stringbeginRemoteIP:= TUniGUISession(Sender).UniApplication.RemoteAddressSessionID:= TUniGUISession(Sender).SessionID//根据ip和会话编号进一步处理。endprocedure TFrmMon.OnSessionEnd(Sender: TIdHTTPSession)varRemoteIp,SessionID:stringbeginRemoteIP:= TUniGUISession(Sender).UniApplication.RemoteAddressSessionID:= TUniGUISession(Sender).SessionID//根据ip和会话编号进一步处理。end下面是一个完整的代码单元:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/58886.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-27
下一篇2023-02-27

发表评论

登录后才能评论

评论列表(0条)

    保存