package org.frameworkset.web.socket.inf; public interface WebSocketHandler { /** * Invoked after WebSocket negotiation has succeeded and the WebSocket connection is * opened and ready for use. * @throws Exception this method can handle or propagate exceptions; see class-level * Javadoc for details. */ void afterConnectionEstablished(WebSocketSession session) throws Exception; /** * Invoked when a new WebSocket message arrives. * @throws Exception this method can handle or propagate exceptions; see class-level * Javadoc for details. */ void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception; /** * Handle an error from the underlying WebSocket message transport. * @throws Exception this method can handle or propagate exceptions; see class-level * Javadoc for details. */ void handleTransportError(WebSocketSession session, Throwable exception) throws Exception; /** * Invoked after the WebSocket connection has been closed by either side, or after a * transport error has occurred. Although the session may technically still be open, * depending on the underlying implementation, sending messages at this point is * discouraged and most likely will not succeed. * @throws Exception this method can handle or propagate exceptions; see class-level * Javadoc for details. */ void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception; /** * Whether the WebSocketHandler handles partial messages. If this flag is set to * {@code true} and the underlying WebSocket server supports partial messages, * then a large WebSocket message, or one of an unknown size may be split and * maybe received over multiple calls to * {@link #handleMessage(WebSocketSession, WebSocketMessage)}. The flag * {@link org.frameworkset.web.socket.WebSocketMessage#isLast()} indicates if * the message is partial and whether it is the last part. */ boolean supportsPartialMessages(); }