/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.megatim.fdxconsultation.model.message.systeme; import com.megatim.fdxconsultation.model.administration.User; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import javax.websocket.EncodeException; import javax.websocket.Session; /** * * @author Lenovo P53 */ public class UserSesionApplication { private static UserSesionApplication userSesion; private static HashMap users; public static UserSesionApplication getInstance() { if (userSesion == null) { userSesion = new UserSesionApplication(); users = new HashMap(); } return userSesion; } public synchronized static HashMap getUsers() { return users; } public static void setUsers(HashMap users) { UserSesionApplication.users = users; } public void addSession(User utilidateur, Session session, String type) { this.users.put(session.getId(), new UserWebSocket(session, utilidateur, type)); } public void removeSession(Session session) { this.users.remove(session.getId()); } public void send(Session session, ApplicationData message) throws IOException, EncodeException { session.getBasicRemote().sendObject(message); } public static boolean siUtilisateurConnecte(User user) { boolean etat = false; UserWebSocket userSession = null; Iterator iterator = UserSesionApplication.getInstance().getUsers().keySet().iterator(); while(iterator.hasNext()){ userSession = UserSesionApplication.getInstance().getUsers().get(iterator.next()); if((userSession != null && userSession.getUtilisateur() != null) && user != null && userSession.getUtilisateur().getId() == user.getId()){ etat = true; break; } } return etat; } public void removeAllSessionsForUser(User user) { //Variables List sessionsId = new ArrayList(); //On parcourt la liste des sessions UserSesionApplication.getInstance().getUsers().forEach((sessionId, userSession) -> { //Si l'utilisateur non null if((userSession != null && userSession.getUtilisateur() != null) && user != null && userSession.getUtilisateur().getId() == user.getId()){ //On recuoère les sessions de l'utilisateur sessionsId.add(sessionId); } }); //On retire les sessions de l'utilisateur for(String sessionId : sessionsId){ //On retire la session this.users.remove(sessionId); System.out.println("=============================removeAllSessionsForUser=====================================>"); } } }