package com.xoom.oss.feathercon.websocket; import javax.websocket.CloseReason; import javax.websocket.EncodeException; 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; import java.io.IOException; import java.util.HashSet; import java.util.Set; @ServerEndpoint(value = "/events") public class ServerSocket { Set<Session> sessions = new HashSet<Session>(); @OnOpen public void onWebSocketConnect(Session session) throws IOException, EncodeException { sessions.add(session); } @OnMessage public void onWebSocketText(String message) throws IOException, EncodeException { for (final Session session : sessions) { session.getBasicRemote().sendObject(String.format("echo:%s", message)); } } @OnClose public void onWebSocketClose(CloseReason reason) { } @OnError public void onWebSocketError(Throwable cause) { } }