org.springframework.web.socket.config

## Class WebSocketMessageBrokerStats

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

- All Implemented Interfaces:
    SmartInitializingSingleton

      public class WebSocketMessageBrokerStats
      extends Object
      implements SmartInitializingSingleton

  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, Sam Brannen

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `WebSocketMessageBrokerStats()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterSingletonsInstantiated()` Invoked right at the end of the singleton pre-instantiation phase, with a guarantee that all regular singleton beans have been created already.
    `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(TaskExecutor inboundChannelExecutor)`
    `void` | `setLoggingPeriod(long period)` Set the frequency for logging information at INFO level in milliseconds.
    `void` | `setOutboundChannelExecutor(TaskExecutor outboundChannelExecutor)`
    `void` | `setSockJsTaskScheduler(TaskScheduler sockJsTaskScheduler)`
    `void` | `setStompBrokerRelay(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(StompBrokerRelayMessageHandler stompBrokerRelay)

    - #### setInboundChannelExecutor

          public void setInboundChannelExecutor(TaskExecutor inboundChannelExecutor)

    - #### setOutboundChannelExecutor

          public void setOutboundChannelExecutor(TaskExecutor outboundChannelExecutor)

    - #### setSockJsTaskScheduler

          public void setSockJsTaskScheduler(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.

    - #### afterSingletonsInstantiated

          public void afterSingletonsInstantiated()

      Description copied from interface: `SmartInitializingSingleton`
      Invoked right at the end of the singleton pre-instantiation phase, with a guarantee that all regular singleton beans have been created already. `ListableBeanFactory.getBeansOfType(java.lang.Class<T>)` calls within this method won't trigger accidental side effects during bootstrap.

      NOTE: This callback won't be triggered for singleton beans lazily initialized on demand after `BeanFactory` bootstrap, and not for any other bean scope either. Carefully use it for beans with the intended bootstrap semantics only.

      Specified by:
        `afterSingletonsInstantiated` in interface `SmartInitializingSingleton`

    - #### 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`