Browse Source

"Order of messages" in STOMP section of reference docs

Issue: SPR-13989
pull/1895/merge
Rossen Stoyanchev 6 years ago
parent
commit
9b2c8404dc
  1. 54
      src/docs/asciidoc/web/websocket.adoc

54
src/docs/asciidoc/web/websocket.adoc

@ -1915,6 +1915,60 @@ of the `message-broker` element in XML. @@ -1915,6 +1915,60 @@ of the `message-broker` element in XML.
[[websocket-stomp-ordered-messages]]
=== Order of Messages
Messages from the broker are published to the "clientOutboundChannel" from where they are
written to WebSocket sessions. As the channel is backed by a `ThreadPoolExecutor` messages
are processed in different threads, and the resulting sequence received by the client may
not match the exact order of publication.
If this is an issue, enable the following flag:
[source,java,indent=0]
[subs="verbatim,quotes"]
----
@Configuration
@EnableWebSocketMessageBroker
public class MyConfig implements WebSocketMessageBrokerConfigurer {
@Override
protected void configureMessageBroker(MessageBrokerRegistry registry) {
// ...
registry.setPreservePublishOrder(true);
}
}
----
The same in XML:
[source,xml,indent=0]
[subs="verbatim,quotes,attributes"]
----
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:websocket="http://www.springframework.org/schema/websocket"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/websocket
http://www.springframework.org/schema/websocket/spring-websocket.xsd">
<websocket:message-broker preserve-publish-order="true">
<!-- ... -->
</websocket:message-broker>
</beans>
----
When the flag is set, messages within the same client session are published to the
"clientOutboundChannel" one at a time, so that the order of publication is guaranteed.
Note that this incurs a small performance overhead, so enable it only if required.
[[websocket-stomp-appplication-context-events]]
=== Events and Interception

Loading…
Cancel
Save