Class StompSubProtocolErrorHandler

java.lang.Object
org.springframework.web.socket.messaging.StompSubProtocolErrorHandler
All Implemented Interfaces:
SubProtocolErrorHandler<byte[]>

public class StompSubProtocolErrorHandler extends Object implements SubProtocolErrorHandler<byte[]>
A SubProtocolErrorHandler for use with STOMP.
Since:
4.2
Author:
Rossen Stoyanchev
  • Constructor Details

    • StompSubProtocolErrorHandler

      public StompSubProtocolErrorHandler()
  • Method Details

    • handleClientMessageProcessingError

      @Nullable public Message<byte[]> handleClientMessageProcessingError(@Nullable Message<byte[]> clientMessage, Throwable ex)
      Description copied from interface: SubProtocolErrorHandler
      Handle errors thrown while processing client messages providing an opportunity to prepare the error message or to prevent one from being sent.

      Note that the STOMP protocol requires a server to close the connection after sending an ERROR frame. To prevent an ERROR frame from being sent, a handler could return null and send a notification message through the broker instead, for example, via a user destination.

      Specified by:
      handleClientMessageProcessingError in interface SubProtocolErrorHandler<byte[]>
      Parameters:
      clientMessage - the client message related to the error, possibly null if error occurred while parsing a WebSocket message
      ex - the cause for the error, never null
      Returns:
      the error message to send to the client, or null in which case no message will be sent.
    • handleErrorMessageToClient

      @Nullable public Message<byte[]> handleErrorMessageToClient(Message<byte[]> errorMessage)
      Description copied from interface: SubProtocolErrorHandler
      Handle errors sent from the server side to clients, for example, errors from the "broke relay" because connectivity failed or the external broker sent an error message, etc.
      Specified by:
      handleErrorMessageToClient in interface SubProtocolErrorHandler<byte[]>
      Parameters:
      errorMessage - the error message, never null
      Returns:
      the error message to send to the client, or null in which case no message will be sent.
    • handleInternal

      protected Message<byte[]> handleInternal(StompHeaderAccessor errorHeaderAccessor, byte[] errorPayload, @Nullable Throwable cause, @Nullable StompHeaderAccessor clientHeaderAccessor)