org.springframework.messaging.simp.stomp

Class DefaultStompSession

  • java.lang.Object
    • org.springframework.messaging.simp.stomp.DefaultStompSession
    • Field Detail

      • EMPTY_PAYLOAD

        public static final byte[] EMPTY_PAYLOAD
        An empty payload.
    • Constructor Detail

      • DefaultStompSession

        public DefaultStompSession(StompSessionHandler sessionHandler,
                                   StompHeaders connectHeaders)
        Create a new session.
        Parameters:
        sessionHandler - the application handler for the session
        connectHeaders - headers for the STOMP CONNECT frame
    • Method Detail

      • getSessionId

        public java.lang.String getSessionId()
        Description copied from interface: StompSession
        Return the id for the session.
        Specified by:
        getSessionId in interface StompSession
      • getSessionHandler

        public StompSessionHandler getSessionHandler()
        Return the configured session handler.
      • setMessageConverter

        public void setMessageConverter(MessageConverter messageConverter)
        Set the MessageConverter to use to convert the payload of incoming and outgoing messages to and from byte[] based on object type, or expected object type, and the "content-type" header.

        By default, SimpleMessageConverter is configured.

        Parameters:
        messageConverter - the message converter to use
      • setTaskScheduler

        public void setTaskScheduler(@Nullable
                                     TaskScheduler taskScheduler)
        Configure the TaskScheduler to use for receipt tracking.
      • getTaskScheduler

        @Nullable
        public TaskScheduler getTaskScheduler()
        Return the configured TaskScheduler to use for receipt tracking.
      • setReceiptTimeLimit

        public void setReceiptTimeLimit(long receiptTimeLimit)
        Configure the time in milliseconds before a receipt expires.

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

      • getReceiptTimeLimit

        public long getReceiptTimeLimit()
        Return the configured time limit before a receipt expires.
      • setAutoReceipt

        public void setAutoReceipt(boolean autoReceiptEnabled)
        Description copied from interface: StompSession
        When enabled, a receipt header is automatically added to future send and subscribe operations on this session, which causes the server to return a RECEIPT. An application can then use the Receiptable returned from the operation to track the receipt.

        A receipt header can also be added manually through the overloaded methods that accept StompHeaders.

        Specified by:
        setAutoReceipt in interface StompSession
      • isAutoReceiptEnabled

        public boolean isAutoReceiptEnabled()
        Whether receipt headers should be automatically added.
      • isConnected

        public boolean isConnected()
        Description copied from interface: StompSession
        Whether the session is connected.
        Specified by:
        isConnected in interface StompSession
      • send

        public StompSession.Receiptable send(java.lang.String destination,
                                             java.lang.Object payload)
        Description copied from interface: StompSession
        Send a message to the specified destination, converting the payload to a byte[] with the help of a MessageConverter.
        Specified by:
        send in interface StompSession
        Parameters:
        destination - the destination to send a message to
        payload - the message payload
        Returns:
        a Receiptable for tracking receipts
      • send

        public StompSession.Receiptable send(StompHeaders headers,
                                             java.lang.Object payload)
        Description copied from interface: StompSession
        An overloaded version of StompSession.send(String, Object) with full StompHeaders instead of just a destination. The headers must contain a destination and may also have other headers such as "content-type" or custom headers for the broker to propagate to subscribers, or broker-specific, non-standard headers..
        Specified by:
        send in interface StompSession
        Parameters:
        headers - the message headers
        payload - the message payload
        Returns:
        a Receiptable for tracking receipts
      • subscribe

        public StompSession.Subscription subscribe(java.lang.String destination,
                                                   StompFrameHandler handler)
        Description copied from interface: StompSession
        Subscribe to the given destination by sending a SUBSCRIBE frame and handle received messages with the specified StompFrameHandler.
        Specified by:
        subscribe in interface StompSession
        Parameters:
        destination - the destination to subscribe to
        handler - the handler for received messages
        Returns:
        a handle to use to unsubscribe and/or track receipts
      • acknowledge

        public StompSession.Receiptable acknowledge(java.lang.String messageId,
                                                    boolean consumed)
        Description copied from interface: StompSession
        Send an acknowledgement whether a message was consumed or not resulting in an ACK or NACK frame respectively.

        Note: to use this when subscribing you must set the ack header to "client" or "client-individual" in order ot use this.

        Specified by:
        acknowledge in interface StompSession
        Parameters:
        messageId - the id of the message
        consumed - whether the message was consumed or not
        Returns:
        a Receiptable for tracking receipts
      • disconnect

        public void disconnect()
        Description copied from interface: StompSession
        Disconnect the session by sending a DISCONNECT frame.
        Specified by:
        disconnect in interface StompSession