@OnWebSocketConnect public void connect(Session session) { session.getPolicy().setMaxBinaryMessageSize(100_000_000); session.getPolicy().setMaxTextMessageSize(100_000_000); this.session = session; flush(); if (target != null) { target.flush(); } }
@WebSocket public class JettyWebSocketHandlerAdapter {
@OnWebSocketError public void onWebSocketError(Throwable cause) { if (this.delegateSession != null) { this.delegateSession.handleError(cause); } }
@OnWebSocketMessage public void onBinaryMessage(Session session, InputStream stream) { if (param.onBinaryMessage != null) { param.onBinaryMessage.callAny(session, stream); } } }
@OnWebSocketClose public void onClose(int status, String reason) { socketHealthService.deregister(this); }
@OnWebSocketFrame public void onWebSocketFrame(Frame frame) { if (this.delegateSession != null) { if (OpCode.PONG == frame.getOpCode()) { ByteBuffer buffer = (frame.getPayload() != null ? frame.getPayload() : EMPTY_PAYLOAD); WebSocketMessage webSocketMessage = toMessage(Type.PONG, buffer); this.delegateSession.handleMessage(webSocketMessage.getType(), webSocketMessage); } } }
@OnWebSocketConnect public void onConnect(Session session) { LOG.info("{} connected.", session); }
@OnWebSocketMessage public void onWebSocketBinary(byte[] message, int offset, int length) { if (this.delegateSession != null) { ByteBuffer buffer = ByteBuffer.wrap(message, offset, length); WebSocketMessage webSocketMessage = toMessage(Type.BINARY, buffer); this.delegateSession.handleMessage(webSocketMessage.getType(), webSocketMessage); } }
@OnWebSocketClose public void onWebSocketClose(int statusCode, String reason) { CloseStatus closeStatus = new CloseStatus(statusCode, reason); try { this.webSocketHandler.afterConnectionClosed(this.wsSession, closeStatus); } catch (Throwable ex) { if (logger.isWarnEnabled()) { logger.warn("Unhandled exception after connection closed for " + this, ex); } } }
@SuppressWarnings("unused") @WebSocket public static class WebSocketListener { final CountDownLatch latch = new CountDownLatch(1); final AtomicReference<Throwable> error = new AtomicReference<>(); @OnWebSocketConnect public void onConnect(final Session session) { session.close(); latch.countDown(); } @OnWebSocketError public void onError(final Throwable t) { error.set(t); latch.countDown(); } } }
@OnWebSocketError public void onWebSocketError(Throwable cause) { try { this.webSocketHandler.handleTransportError(this.wsSession, cause); } catch (Throwable ex) { ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger); } }
@OnWebSocketFrame public void onWebSocketFrame(Frame frame) { if (OpCode.PONG == frame.getOpCode()) { ByteBuffer payload = frame.getPayload() != null ? frame.getPayload() : EMPTY_PAYLOAD; PongMessage message = new PongMessage(payload); try { this.webSocketHandler.handleMessage(this.wsSession, message); } catch (Throwable ex) { ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger); } } }
@OnWebSocketConnect public void onConnect(Session session) { this.session = session; LOGGER.debug("{} connected.", sessionName()); }
@OnWebSocketMessage public void onWebSocketText(String message) { if (this.delegateSession != null) { WebSocketMessage webSocketMessage = toMessage(Type.TEXT, message); this.delegateSession.handleMessage(webSocketMessage.getType(), webSocketMessage); } }
@OnWebSocketClose public void onClose(int statusCode, String reason) { closeSession(); }
@OnWebSocketConnect public void onWebSocketConnect(Session session) { this.delegateSession = this.sessionFactory.apply(session); this.delegateHandler.handle(this.delegateSession).subscribe(this.delegateSession); }
@OnWebSocketMessage public void onWebSocketBinary(byte[] payload, int offset, int length) { BinaryMessage message = new BinaryMessage(payload, offset, length, true); try { this.webSocketHandler.handleMessage(this.wsSession, message); } catch (Throwable ex) { ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger); } }
@OnWebSocketClose public void onWebSocketClose(int statusCode, String reason) { if (this.delegateSession != null) { this.delegateSession.handleClose(new CloseStatus(statusCode, reason)); } }
@OnWebSocketConnect public void onWebSocketConnect(Session session) { try { this.wsSession.initializeNativeSession(session); this.webSocketHandler.afterConnectionEstablished(this.wsSession); } catch (Throwable ex) { ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger); } }
@OnWebSocketMessage public void onWebSocketText(String payload) { TextMessage message = new TextMessage(payload); try { this.webSocketHandler.handleMessage(this.wsSession, message); } catch (Throwable ex) { ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger); } }