org.springframework.web.socket.config

## Class WebSocketMessageBrokerStats

- java.lang.Object
- - org.springframework.web.socket.config.WebSocketMessageBrokerStats

    public class WebSocketMessageBrokerStats
    extends Object

A central class for aggregating information about internal state and counters from key infrastructure components of the setup that comes with `@EnableWebSocketMessageBroker` for Java config and `<websocket:message-broker>` for XML.

By default aggregated information is logged every 30 minutes at INFO level. The frequency of logging can be changed via `setLoggingPeriod(long)`.

This class is declared as a Spring bean by the above configuration with the name "webSocketMessageBrokerStats" and can be easily exported to JMX, e.g. with the `MBeanExporter`.

Since:
  4.1
Author:
  Rossen Stoyanchev

### Constructor Summary

Constructors
Constructor and Description
`WebSocketMessageBrokerStats()`

### Method Summary

All Methods Instance Methods Concrete Methods
`String` `getClientInboundExecutorStatsInfo()` Get stats about the executor processing incoming messages from WebSocket clients.
`String` `getClientOutboundExecutorStatsInfo()` Get stats about the executor processing outgoing messages to WebSocket clients.
`long` `getLoggingPeriod()` Return the configured logging period frequency in milliseconds.
`String` `getSockJsTaskSchedulerStatsInfo()` Get stats about the SockJS task scheduler.
`String` `getStompBrokerRelayStatsInfo()` Get stats about STOMP broker relay (when using a full-featured STOMP broker).
`String` `getStompSubProtocolStatsInfo()` Get stats about STOMP-related WebSocket message processing.
`String` `getWebSocketSessionStatsInfo()` Get stats about WebSocket sessions.
`void` `setInboundChannelExecutor(org.springframework.core.task.TaskExecutor inboundChannelExecutor)`
`void` `setLoggingPeriod(long period)` Set the frequency for logging information at INFO level in milliseconds.
`void` `setOutboundChannelExecutor(org.springframework.core.task.TaskExecutor outboundChannelExecutor)`
`void` `setSockJsTaskScheduler(org.springframework.scheduling.TaskScheduler sockJsTaskScheduler)`
`void` `setStompBrokerRelay(org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler stompBrokerRelay)`
`void` `setSubProtocolWebSocketHandler(SubProtocolWebSocketHandler webSocketHandler)`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### WebSocketMessageBrokerStats

    public WebSocketMessageBrokerStats()

### Method Detail

#### setSubProtocolWebSocketHandler

    public void setSubProtocolWebSocketHandler(SubProtocolWebSocketHandler webSocketHandler)

#### setStompBrokerRelay

    public void setStompBrokerRelay(org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler stompBrokerRelay)

#### setInboundChannelExecutor

    public void setInboundChannelExecutor(org.springframework.core.task.TaskExecutor inboundChannelExecutor)

#### setOutboundChannelExecutor

    public void setOutboundChannelExecutor(org.springframework.core.task.TaskExecutor outboundChannelExecutor)

#### setSockJsTaskScheduler

    public void setSockJsTaskScheduler(org.springframework.scheduling.TaskScheduler sockJsTaskScheduler)

#### setLoggingPeriod

    public void setLoggingPeriod(long period)

Set the frequency for logging information at INFO level in milliseconds. If set 0 or less than 0, the logging task is cancelled.

By default this property is set to 30 minutes (30 * 60 * 1000).

#### getLoggingPeriod

    public long getLoggingPeriod()

Return the configured logging period frequency in milliseconds.

#### getWebSocketSessionStatsInfo

    public String getWebSocketSessionStatsInfo()

Get stats about WebSocket sessions.

#### getStompSubProtocolStatsInfo

    public String getStompSubProtocolStatsInfo()

Get stats about STOMP-related WebSocket message processing.

#### getStompBrokerRelayStatsInfo

    public String getStompBrokerRelayStatsInfo()

Get stats about STOMP broker relay (when using a full-featured STOMP broker).

#### getClientInboundExecutorStatsInfo

    public String getClientInboundExecutorStatsInfo()

Get stats about the executor processing incoming messages from WebSocket clients.

#### getClientOutboundExecutorStatsInfo

    public String getClientOutboundExecutorStatsInfo()

Get stats about the executor processing outgoing messages to WebSocket clients.

#### getSockJsTaskSchedulerStatsInfo

    public String getSockJsTaskSchedulerStatsInfo()

Get stats about the SockJS task scheduler.

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`