spring-framework / org.springframework.web.socket.messaging / WebSocketStompClient

WebSocketStompClient

open class WebSocketStompClient : StompClientSupport, SmartLifecycle

A STOMP over WebSocket client that connects using an implementation of org.springframework.web.socket.client.WebSocketClient including org.springframework.web.socket.sockjs.client.SockJsClient.

Author
Rossen Stoyanchev

Since
4.2

Constructors

<init>

WebSocketStompClient(webSocketClient: WebSocketClient)

Class constructor. Sets #setDefaultHeartbeat to "0,0" but will reset it back to the preferred "10000,10000" when a #setTaskScheduler is configured.

Functions

connect

open fun connect(url: String, handler: StompSessionHandler, vararg uriVars: Any): ListenableFuture<StompSession>

Connect to the given WebSocket URL and notify the given org.springframework.messaging.simp.stomp.StompSessionHandler when connected on the STOMP level after the CONNECTED frame is received.

open fun connect(url: String, handshakeHeaders: WebSocketHttpHeaders, handler: StompSessionHandler, vararg uriVariables: Any): ListenableFuture<StompSession>

An overloaded version of #connect(String, StompSessionHandler, Object...) that also accepts WebSocketHttpHeaders to use for the WebSocket handshake.

open fun connect(url: String, handshakeHeaders: WebSocketHttpHeaders, connectHeaders: StompHeaders, handler: StompSessionHandler, vararg uriVariables: Any): ListenableFuture<StompSession>

An overloaded version of #connect(String, StompSessionHandler, Object...) that also accepts WebSocketHttpHeaders to use for the WebSocket handshake and StompHeaders for the STOMP CONNECT frame.

open fun connect(url: URI, handshakeHeaders: WebSocketHttpHeaders, connectHeaders: StompHeaders, sessionHandler: StompSessionHandler): ListenableFuture<StompSession>

An overloaded version of #connect(String, WebSocketHttpHeaders, StompSessionHandler, Object...) that accepts a fully prepared java.net.URI.

getInboundMessageSizeLimit

open fun getInboundMessageSizeLimit(): Int

Get the configured inbound message buffer size in bytes.

getPhase

open fun getPhase(): Int

Return the configured phase.

getWebSocketClient

open fun getWebSocketClient(): WebSocketClient

Return the configured WebSocketClient.

isAutoStartup

open fun isAutoStartup(): Boolean

Return the value for the 'autoStartup' property. If "true", this client will automatically start and stop the contained WebSocketClient.

isRunning

open fun isRunning(): Boolean

setAutoStartup

open fun setAutoStartup(autoStartup: Boolean): Unit

Set whether to auto-start the contained WebSocketClient when the Spring context has been refreshed.

Default is "true".

setInboundMessageSizeLimit

open fun setInboundMessageSizeLimit(inboundMessageSizeLimit: Int): Unit

Configure the maximum size allowed for inbound STOMP message. Since a STOMP message can be received in multiple WebSocket messages, buffering may be required and this property determines the maximum buffer size per message.

By default this is set to 64 * 1024 (64K).

setPhase

open fun setPhase(phase: Int): Unit

Specify the phase in which the WebSocket client should be started and subsequently closed. The startup order proceeds from lowest to highest, and the shutdown order is the reverse of that.

By default this is Integer.MAX_VALUE meaning that the WebSocket client is started as late as possible and stopped as soon as possible.

setTaskScheduler

open fun setTaskScheduler(taskScheduler: TaskScheduler): Unit

{@inheritDoc}

Also automatically sets the defaultHeartbeat property to "10000,10000" if it is currently set to "0,0".

start

open fun start(): Unit

stop

open fun stop(): Unit
open fun stop(callback: Runnable): Unit

Inherited Functions

getDefaultHeartbeat

open fun getDefaultHeartbeat(): LongArray

Return the configured default heart-beat value (never null).

getMessageConverter

open fun getMessageConverter(): MessageConverter

Return the configured MessageConverter.

getReceiptTimeLimit

open fun getReceiptTimeLimit(): Long

Return the configured receipt time limit.

getTaskScheduler

open fun getTaskScheduler(): TaskScheduler

The configured TaskScheduler.

isDefaultHeartbeatEnabled

open fun isDefaultHeartbeatEnabled(): Boolean

Determine whether heartbeats are enabled.

Returns false if defaultHeartbeat is set to "0,0", and true otherwise.

setDefaultHeartbeat

open fun setDefaultHeartbeat(heartbeat: LongArray): Unit

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.

setMessageConverter

open fun setMessageConverter(messageConverter: MessageConverter): Unit

Set the MessageConverter to use to convert the payload of incoming and outgoing messages to and from byte[] based on object type and the "content-type" header.

By default, SimpleMessageConverter is configured.

setReceiptTimeLimit

open fun setReceiptTimeLimit(receiptTimeLimit: Long): Unit

Configure the number of milliseconds before a receipt is considered expired.

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