/* * 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.service.impl.sockets.helpers; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; import javax.enterprise.context.ApplicationScoped; import javax.websocket.EncodeException; import javax.websocket.Session; /** * * @author ASUS */ @ApplicationScoped public class TableauBordGlobalSessionHandler { private final Map idToSessions = new ConcurrentHashMap<>(); public void publishMessage(Map> participantToTypeFichiers) { getSessions().forEach(s -> { try { s.getBasicRemote().sendObject(participantToTypeFichiers); } catch (IOException | EncodeException ex) { Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex); } }); } public void addSession(Session session) { idToSessions.put(session.getId(), session); } public void removeSession(Session session) { idToSessions.remove(session.getId()); } private List getSessions() { return idToSessions .entrySet() .stream() .map(e -> e.getValue()) .collect(Collectors.toList()); } }