package fi.iki.mkuokkanen.seda.api.session; import java.io.IOException; import java.util.HashSet; import java.util.Set; import org.eclipse.jetty.websocket.api.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Implements Session Manager * * @author mkuokkanen */ public class SessionManagerImpl implements SessionManager { private static Logger logger = LoggerFactory.getLogger(SessionManagerImpl.class); /** * Store */ private final Set<Session> sessions; /** * Default constructor */ public SessionManagerImpl() { sessions = new HashSet<>(); } @Override public void join(Session s) { logger.info("Session joined: {}", s.getRemoteAddress()); sessions.add(s); } @Override public void part(Session s) { logger.info("Session parted: {}", s.getRemoteAddress()); sessions.remove(s); } @Override public void sendAll(String str) { for (Session each : sessions) { logger.debug("Msg sended {}, {}", str, each.getRemoteAddress()); try { each.getRemote().sendString(str); } catch (IOException e) { logger.error("error while sending", e); } } } }