3737 * only if the new code is made subject to such option by the copyright
3838 * holder.
3939 */
40-
4140package com .actionbazaar .interfaces .socket ;
4241
4342import java .io .IOException ;
44- import java .util .HashSet ;
45- import java .util .Set ;
4643import java .util .logging .Level ;
4744import java .util .logging .Logger ;
48- import javax .ejb .Singleton ;
4945import javax .websocket .EncodeException ;
5046import javax .websocket .OnClose ;
5147import javax .websocket .OnMessage ;
5551
5652@ ServerEndpoint (value = "/chat" ,
5753 encoders = {ChatMessage .class }, decoders = {ChatMessage .class })
58- @ Singleton
5954public class ChatServer {
6055
6156 private static final Logger logger = Logger
6257 .getLogger (ChatServer .class .getName ());
6358
64- private final Set <Session > peers ;
65-
66- public ChatServer () {
67- peers = new HashSet <>();
68- }
69-
7059 @ OnOpen
7160 public void onOpen (Session peer ) {
7261 logger .log (Level .INFO , "Opened session: {0}" , peer );
73- peers .add (peer );
7462 }
7563
7664 @ OnClose
7765 public void onClose (Session peer ) {
7866 logger .log (Level .INFO , "Closed session: {0}" , peer );
79- peers .remove (peer );
8067 }
8168
8269 @ OnMessage
8370 public void onMessage (ChatMessage message , Session session ) {
8471 logger .log (Level .INFO , "Received message {0} from peer {1}" ,
8572 new Object []{message , session });
8673
87- for (Session peer : peers ) {
74+ for (Session peer : session . getOpenSessions () ) {
8875 try {
8976 logger .log (Level .INFO , "Broadcasting message {0} to peer {1}" ,
9077 new Object []{message , peer });
@@ -95,4 +82,4 @@ public void onMessage(ChatMessage message, Session session) {
9582 }
9683 }
9784 }
98- }
85+ }
0 commit comments