統計在線人數
package com.yirui.supervisor.filter; import org.apache.shiro.session.Session; import org.apache.shiro.session.SessionListener; import java.util.concurrent.atomic.AtomicInteger; /** * @author MrBird */ public class ShiroSessionListener implements SessionListener { private final AtomicInteger sessionCount = new AtomicInteger(0); /** * 會話創建時觸發 * @param session */ @Override public void onStart(Session session) { //會話創建,在線人數加一 sessionCount.incrementAndGet(); } /** * 退出會話時觸發 * @param session */ @Override public void onStop(Session session) { //會話退出,在線人數減一 sessionCount.decrementAndGet(); } /** * 會話過期時觸發 * @param session */ @Override public void onExpiration(Session session) { //會話過期,在線人數減一 sessionCount.decrementAndGet(); } /** * 獲取在線人數使用 * @return */ public AtomicInteger getSessionCount(){ return sessionCount; } }