UserSessionData.java 908 Bytes
package com.infoloop.tianting.server.session;

import lombok.Getter;
import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.WebSocketSession;

import java.io.IOException;
import java.util.concurrent.atomic.AtomicLong;

@Getter
public class UserSessionData {
    private final WebSocketSession session;
    private final AtomicLong lastActiveTime;

    public UserSessionData(WebSocketSession session) {
        this.session = session;
        this.lastActiveTime = new AtomicLong(System.currentTimeMillis());
    }

    public long getLastActiveTime() {
        return lastActiveTime.get();
    }

    public void updateLastActiveTime() {
        lastActiveTime.set(System.currentTimeMillis());
    }

    public void closeSession() throws IOException {
        if (session != null && session.isOpen()) {
            session.close(CloseStatus.GOING_AWAY);
        }
    }
}