Class StompClientSupport

  • Direct Known Subclasses:
    Reactor2TcpStompClient, WebSocketStompClient

    public abstract class StompClientSupport
    extends Object
    Base class for STOMP client implementations.

    Subclasses can connect over WebSocket or TCP using any library. When creating a new connection, a subclass can create an instance of @link DefaultStompSession} which extends TcpConnectionHandler whose lifecycle methods the subclass must then invoke.

    In effect, TcpConnectionHandler and TcpConnection are the contracts that any subclass must adapt to while using StompEncoder and StompDecoder to encode and decode STOMP messages.

    Since:
    4.2
    Author:
    Rossen Stoyanchev
    • Method Detail

      • setTaskScheduler

        public void setTaskScheduler​(TaskScheduler taskScheduler)
        Configure a scheduler to use for heartbeats and for receipt tracking.

        Note: Some transports have built-in support to work with heartbeats and therefore do not require a TaskScheduler. Receipts however, if needed, do require a TaskScheduler to be configured.

        By default, this is not set.

      • setDefaultHeartbeat

        public void setDefaultHeartbeat​(long[] heartbeat)
        Configure the default value for the "heart-beat" header of the STOMP CONNECT frame. The first number represents how often the client will write or send a heart-beat. The second is how often the server should write. A value of 0 means no heart-beats.

        By default this is set to "10000,10000" but subclasses may override that default and for example set it to "0,0" if they require a TaskScheduler to be configured first.

        Parameters:
        heartbeat - the value for the CONNECT "heart-beat" header
        See Also:
        https://stomp.github.io/stomp-specification-1.2.html#Heart-beating
      • getDefaultHeartbeat

        public long[] getDefaultHeartbeat()
        Return the configured default heart-beat value (never null).
      • setReceiptTimeLimit

        public void setReceiptTimeLimit​(long receiptTimeLimit)
        Configure the number of milliseconds before a receipt is considered expired.

        By default set to 15,000 (15 seconds).

      • getReceiptTimeLimit

        public long getReceiptTimeLimit()
        Return the configured receipt time limit.
      • processConnectHeaders

        protected StompHeaders processConnectHeaders​(StompHeaders connectHeaders)
        Further initialize the StompHeaders, for example setting the heart-beat header if necessary.
        Parameters:
        connectHeaders - the headers to modify
        Returns:
        the modified headers