diff --git a/src/docs/asciidoc/web/websocket.adoc b/src/docs/asciidoc/web/websocket.adoc index 080a75e0ab..07751ff573 100644 --- a/src/docs/asciidoc/web/websocket.adoc +++ b/src/docs/asciidoc/web/websocket.adoc @@ -1818,12 +1818,16 @@ its own implementation of `WebSocketMessageBrokerConfigurer` that is marked with An application can send messages that target a specific user, and Spring's STOMP support recognizes destinations prefixed with `/user/` for this purpose. For example, a client might subscribe to the `/user/queue/position-updates` destination. -This destination is handled by the `UserDestinationMessageHandler` and -transformed into a destination unique to the user session -(such as `/queue/position-updates-user123`). This provides the convenience of subscribing -to a generically named destination while, at the same time, ensuring no collisions -with other users who subscribe to the same destination so that each user can receive -unique stock position updates. +`UserDestinationMessageHandler` handles this destination and transforms it into a +destination unique to the user session (such as `/queue/position-updates-user123`). +This provides the convenience of subscribing to a generically named destination while, +at the same time, ensuring no collisions with other users who subscribe to the same +destination so that each user can receive unique stock position updates. + +TIP: When working with user destinations, it is important to configure broker and +application destination prefixes as shown in <>, or otherwise the +broker would handle "/user" prefixed messages that should only be handled by +`UserDestinationMessageHandler`. On the sending side, messages can be sent to a destination such as pass:q[`/user/{username}/queue/position-updates`], which in turn is translated