类 StompSubProtocolHandler
- java.lang.Object
- org.springframework.web.socket.messaging.StompSubProtocolHandler
public class StompSubProtocolHandler extends Object implements SubProtocolHandler, ApplicationEventPublisherAware
ASubProtocolHandler
for STOMP that supports versions 1.0, 1.1, and 1.2 of the STOMP specification.- 从以下版本开始:
- 4.0
- 作者:
- Rossen Stoyanchev, Andy Wilkinson
嵌套类概要
嵌套类 修饰符和类型 类 说明 static interface
StompSubProtocolHandler.Stats
Contract for access to session counters.
字段概要
字段 修饰符和类型 字段 说明 static String
CONNECTED_USER_HEADER
The name of the header set on the CONNECTED frame indicating the name of the user authenticated on the WebSocket session.static int
MINIMUM_WEBSOCKET_MESSAGE_SIZE
This handler supports assembling large STOMP messages split into multiple WebSocket messages and STOMP clients (like stomp.js) indeed split large STOMP messages at 16K boundaries.
构造器概要
构造器 构造器 说明 StompSubProtocolHandler()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 void
afterSessionEnded(WebSocketSession session, CloseStatus closeStatus, MessageChannel outputChannel)
Invoked after aWebSocketSession
has ended.void
afterSessionStarted(WebSocketSession session, MessageChannel outputChannel)
Invoked after aWebSocketSession
has started.StompSubProtocolErrorHandler
getErrorHandler()
Return the configured error handler.MessageHeaderInitializer
getHeaderInitializer()
Return the configured header initializer.int
getMessageSizeLimit()
Get the configured message buffer size limit in bytes.StompSubProtocolHandler.Stats
getStats()
Return a structured object with internal state and counters.String
getStatsInfo()
Return a String describing internal state and counters.List<String>
getSupportedProtocols()
Return the list of sub-protocols supported by this handler (nevernull
).void
handleMessageFromClient(WebSocketSession session, WebSocketMessage<?> webSocketMessage, MessageChannel outputChannel)
Handle incoming WebSocket messages from clients.void
handleMessageToClient(WebSocketSession session, Message<?> message)
Handle STOMP messages going back out to WebSocket clients.String
resolveSessionId(Message<?> message)
Resolve the session id from the given message or returnnull
.void
setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
Set the ApplicationEventPublisher that this object runs in.void
setDecoder(StompDecoder decoder)
Configure aStompDecoder
for decoding STOMP frames.void
setEncoder(StompEncoder encoder)
Configure aStompEncoder
for encoding STOMP frames.void
setErrorHandler(StompSubProtocolErrorHandler errorHandler)
Configure a handler for error messages sent to clients which allows customizing the error messages or preventing them from being sent.void
setHeaderInitializer(MessageHeaderInitializer headerInitializer)
Configure aMessageHeaderInitializer
to apply to the headers of all messages created from decoded STOMP frames and other messages sent to the client inbound channel.void
setMessageSizeLimit(int messageSizeLimit)
Configure the maximum size allowed for an incoming STOMP message.protected StompHeaderAccessor
toMutableAccessor(StompHeaderAccessor headerAccessor, Message<?> message)
String
toString()
字段详细资料
MINIMUM_WEBSOCKET_MESSAGE_SIZE
public static final int MINIMUM_WEBSOCKET_MESSAGE_SIZE
This handler supports assembling large STOMP messages split into multiple WebSocket messages and STOMP clients (like stomp.js) indeed split large STOMP messages at 16K boundaries. Therefore the WebSocket server input message buffer size must allow 16K at least plus a little extra for SockJS framing.- 另请参阅:
- 常量字段值
CONNECTED_USER_HEADER
public static final String CONNECTED_USER_HEADER
The name of the header set on the CONNECTED frame indicating the name of the user authenticated on the WebSocket session.- 另请参阅:
- 常量字段值
构造器详细资料
StompSubProtocolHandler
public StompSubProtocolHandler()
方法详细资料
setErrorHandler
public void setErrorHandler(StompSubProtocolErrorHandler errorHandler)
Configure a handler for error messages sent to clients which allows customizing the error messages or preventing them from being sent.By default this isn't configured in which case an ERROR frame is sent with a message header reflecting the error.
- 参数:
errorHandler
- the error handler
getErrorHandler
@Nullable public StompSubProtocolErrorHandler getErrorHandler()
Return the configured error handler.
setMessageSizeLimit
public void setMessageSizeLimit(int messageSizeLimit)
Configure the maximum size allowed for an incoming STOMP message. Since a STOMP message can be received in multiple WebSocket messages, buffering may be required and therefore it is necessary to know the maximum allowed message size.By default this property is set to 64K.
- 从以下版本开始:
- 4.0.3
getMessageSizeLimit
public int getMessageSizeLimit()
Get the configured message buffer size limit in bytes.- 从以下版本开始:
- 4.0.3
setEncoder
public void setEncoder(StompEncoder encoder)
Configure aStompEncoder
for encoding STOMP frames.- 从以下版本开始:
- 4.3.5
setDecoder
public void setDecoder(StompDecoder decoder)
Configure aStompDecoder
for decoding STOMP frames.- 从以下版本开始:
- 4.3.5
setHeaderInitializer
public void setHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer)
Configure aMessageHeaderInitializer
to apply to the headers of all messages created from decoded STOMP frames and other messages sent to the client inbound channel.By default this property is not set.
getHeaderInitializer
@Nullable public MessageHeaderInitializer getHeaderInitializer()
Return the configured header initializer.
getSupportedProtocols
public List<String> getSupportedProtocols()
从接口复制的说明:SubProtocolHandler
Return the list of sub-protocols supported by this handler (nevernull
).- 指定者:
getSupportedProtocols
在接口中SubProtocolHandler
setApplicationEventPublisher
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
从接口复制的说明:ApplicationEventPublisherAware
Set the ApplicationEventPublisher that this object runs in.Invoked after population of normal bean properties but before an init callback like InitializingBean's afterPropertiesSet or a custom init-method. Invoked before ApplicationContextAware's setApplicationContext.
- 指定者:
setApplicationEventPublisher
在接口中ApplicationEventPublisherAware
- 参数:
applicationEventPublisher
- event publisher to be used by this object
getStatsInfo
public String getStatsInfo()
Return a String describing internal state and counters. EffectivelytoString()
ongetStats()
.
getStats
public StompSubProtocolHandler.Stats getStats()
Return a structured object with internal state and counters.- 从以下版本开始:
- 5.2
handleMessageFromClient
public void handleMessageFromClient(WebSocketSession session, WebSocketMessage<?> webSocketMessage, MessageChannel outputChannel)
Handle incoming WebSocket messages from clients.- 指定者:
handleMessageFromClient
在接口中SubProtocolHandler
- 参数:
session
- the client sessionwebSocketMessage
- the client messageoutputChannel
- an output channel to send messages to
handleMessageToClient
public void handleMessageToClient(WebSocketSession session, Message<?> message)
Handle STOMP messages going back out to WebSocket clients.- 指定者:
handleMessageToClient
在接口中SubProtocolHandler
- 参数:
session
- the client sessionmessage
- the client message
toMutableAccessor
protected StompHeaderAccessor toMutableAccessor(StompHeaderAccessor headerAccessor, Message<?> message)
resolveSessionId
@Nullable public String resolveSessionId(Message<?> message)
从接口复制的说明:SubProtocolHandler
Resolve the session id from the given message or returnnull
.- 指定者:
resolveSessionId
在接口中SubProtocolHandler
- 参数:
message
- the message to resolve the session id from
afterSessionStarted
public void afterSessionStarted(WebSocketSession session, MessageChannel outputChannel)
从接口复制的说明:SubProtocolHandler
Invoked after aWebSocketSession
has started.- 指定者:
afterSessionStarted
在接口中SubProtocolHandler
- 参数:
session
- the client sessionoutputChannel
- a channel
afterSessionEnded
public void afterSessionEnded(WebSocketSession session, CloseStatus closeStatus, MessageChannel outputChannel)
从接口复制的说明:SubProtocolHandler
Invoked after aWebSocketSession
has ended.- 指定者:
afterSessionEnded
在接口中SubProtocolHandler
- 参数:
session
- the client sessioncloseStatus
- the reason why the session was closedoutputChannel
- a channel