@Override public void onApplicationEvent(TcpConnectionEvent event) { final EventType eventType = event.getType(); if (TcpConnectionEventType.OPEN.equals(eventType)) { } else if (TcpConnectionEventType.CLOSE.equals(eventType)) { logger.info("TCP Event: CLOSED - Removing client: " + event.getConnectionId()); clients.remove(event.getConnectionId()); } else if (TcpConnectionEventType.EXCEPTION.equals(eventType)) { logger.warn("EXCEPTION Event - Removing client: " + event.getConnectionId()); clients.remove(event.getConnectionId()); } else if (WebSocketEventType.HANDSHAKE_COMPLETE.equals(eventType)) { logger.info("HANDSHAKE_COMPLETE - Adding client: " + event.getConnectionId()); clients.put(event.getConnectionId(), new AtomicInteger()); } else if (WebSocketEventType.WEBSOCKET_CLOSED.equals(eventType)) { logger.info("WEBSOCKET_CLOSED - Removing client: " + event.getConnectionId()); clients.remove(event.getConnectionId()); } else { throw new IllegalArgumentException( String.format("EventType '%s' is not supported.", eventType)); } }