Browse Source

Add tip related to user destinations in STOMP

See gh-26986
pull/27374/head
Rossen Stoyanchev 4 years ago
parent
commit
a3655c4858
  1. 16
      src/docs/asciidoc/web/websocket.adoc

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

@ -1818,12 +1818,16 @@ its own implementation of `WebSocketMessageBrokerConfigurer` that is marked with @@ -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 <<websocket-stomp-enable>>, 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

Loading…
Cancel
Save