@Override public void onWebSocketConnect(final Session session) { super.onWebSocketConnect(session); if (sessionId == null || sessionId.isEmpty()) { // If sessionId is already assigned to this instance, don't publish new one. // So that existing sesionId can be reused when reconnecting. sessionId = UUID.randomUUID().toString(); } final JettyWebSocketSession webSocketSession = new JettyWebSocketSession(sessionId, session); router.captureSession(webSocketSession); }
@Override public void onWebSocketClose(final int statusCode, final String reason) { super.onWebSocketClose(statusCode, reason); router.onWebSocketClose(sessionId, statusCode, reason); }
@Override public void onWebSocketError(Throwable cause) { super.onWebSocketError(cause); cause.printStackTrace(System.err); } }
@Override public void onWebSocketText(String message) { super.onWebSocketText(message); System.out.println("Received TEXT message: " + message); }
@Override public void onWebSocketError(Throwable cause) { super.onWebSocketError(cause); if (cause instanceof UnresolvedAddressException) { Discord4J.LOGGER.warn(LogMarkers.WEBSOCKET, "Caught UnresolvedAddressException. Internet outage?"); } else if (cause instanceof UnknownHostException) { Discord4J.LOGGER.warn(LogMarkers.WEBSOCKET, "Caught UnknownHostException. Internet outage?"); } else if (cause instanceof UpgradeException) { Discord4J.LOGGER.warn(LogMarkers.WEBSOCKET, "Caught UpgradeException. Internet outage?"); } else if (cause instanceof ClosedChannelException) { Discord4J.LOGGER.info(LogMarkers.WEBSOCKET, "Discord rejected our connection, reconnecting..."); } else { Discord4J.LOGGER.error(LogMarkers.WEBSOCKET, "Encountered websocket error: ", cause); } if (this.state == State.RESUMING) { client.reconnectManager.onReconnectError(); } }
@Override public void onWebSocketText(final String message) { if (listener_ != null) { listener_.onWebSocketText(message); } super.onWebSocketText(message); final MessageEvent msgEvent = new MessageEvent(message); msgEvent.setOrigin(getUrl()); fire(msgEvent); callFunction(messageHandler_, new Object[] {msgEvent}); }
@Override public void onWebSocketConnect(Session sess) { super.onWebSocketConnect(sess); sess.setIdleTimeout(10000); }
@Override public void onWebSocketClose(int statusCode, String reason) { super.onWebSocketClose(statusCode, reason); Context.getConnectionManager().removeListener(userId, this); }
@Override public void onWebSocketError(Throwable cause) { super.onWebSocketError(cause); log.info("[{}] WebSocket error on topic {} : {}", getSession().getRemoteAddress(), topic, cause.getMessage()); try { close(); } catch (IOException e) { log.error("Failed in closing WebSocket session for topic {} with error: {}", topic, e.getMessage()); } }
@Override public void onWebSocketText(final String message) { if (listener_ != null) { listener_.onWebSocketText(message); } super.onWebSocketText(message); final MessageEvent msgEvent = new MessageEvent(message); msgEvent.setOrigin(getUrl()); fire(msgEvent); callFunction(messageHandler_, new Object[] {msgEvent}); }
@Override public void onWebSocketConnect(Session session) { super.onWebSocketConnect(session); Map<String, Collection<?>> data = new HashMap<>(); data.put(KEY_POSITIONS, Context.getDeviceManager().getInitialState(userId)); sendData(data); Context.getConnectionManager().addListener(userId, this); }
@Override public void onWebSocketClose(int statusCode, String reason) { getSession().close(); super.onWebSocketClose(statusCode, reason); }
@Override public void onWebSocketError(final Throwable cause) { if (listener_ != null) { listener_.onWebSocketError(cause); } super.onWebSocketError(cause); readyState_ = CLOSED; outgoingSession_ = null; final Event errorEvent = new Event(); errorEvent.setType(Event.TYPE_ERROR); fire(errorEvent); callFunction(errorHandler_, new Object[] {errorEvent}); final CloseEvent closeEvent = new CloseEvent(); closeEvent.setCode(1006); closeEvent.setReason(cause.getMessage()); closeEvent.setWasClean(false); fire(closeEvent); callFunction(closeHandler_, new Object[] {closeEvent}); }
/** * {@inheritDoc} * </p> * Handles the event of this web socket being connected. Finds the * destination COLIBRI {@link Endpoint} and authenticates the request * based on the password. */ @Override public void onWebSocketConnect(Session sess) { super.onWebSocketConnect(sess); endpoint.onWebSocketConnect(this); }
@Override public void onWebSocketClose(int statusCode, String reason) { super.onWebSocketClose(statusCode, reason); connectionManager.remove(this); }
@Override public void onWebSocketError(final Throwable cause) { if (listener_ != null) { listener_.onWebSocketError(cause); } super.onWebSocketError(cause); readyState_ = CLOSED; outgoingSession_ = null; final Event errorEvent = new Event(); errorEvent.setType(Event.TYPE_ERROR); fire(errorEvent); callFunction(errorHandler_, new Object[] {errorEvent}); final CloseEvent closeEvent = new CloseEvent(); closeEvent.setCode(1006); closeEvent.setReason(cause.getMessage()); closeEvent.setWasClean(false); fire(closeEvent); callFunction(closeHandler_, new Object[] {closeEvent}); }
@Override public void onWebSocketConnect(Session sess) { super.onWebSocketConnect(sess); connectionManager.add(this); connectionManager.broadcastToSession(this); }
@Override public void onWebSocketClose(int statusCode, String reason) { super.onWebSocketClose(statusCode,reason); System.out.println("Socket Closed: [" + statusCode + "] " + reason); }
@Override public void onWebSocketConnect(Session session) { super.onWebSocketConnect(session); }
@Override public void onWebSocketClose(int statusCode, String reason) { super.onWebSocketClose(statusCode, reason); Discord4J.LOGGER.info(LogMarkers.VOICE_WEBSOCKET, "Voice Websocket disconnected with status code {} and reason \"{}\"", statusCode, reason); disconnect(VoiceDisconnectedEvent.Reason.ABNORMAL_CLOSE); // TODO: Reconnect? }