org.apache.shiro.session.SessionListener;

 統計在線人數

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;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章