package dk.thoerup.websocket; import java.io.IOException; import java.util.HashMap; import javax.websocket.CloseReason; import javax.websocket.EndpointConfig; import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/wstest") public class AnnotatedSocket { static private HashMap sessions = new HashMap(); @OnOpen public void open(Session session, EndpointConfig conf) { sessions.put(session.getId(), session); } @OnError public void error(Session session, Throwable error) { } @OnClose public void close(Session session, CloseReason reason) { sessions.remove(session.getId()); } @OnMessage public void onMessage(Session session, String msg) { try { for(Session ses: sessions.values() ) { ses.getBasicRemote().sendText( session.getId() + " > " + msg); } System.out.println("Returned msg: " + msg); } catch (IOException e) { System.out.println("Error returning message " + e.getMessage() ); } } }