You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ConnectionSetupPayload at the start of on an RSocket connection is currently handled with a @MessageMapping method like any subsequent stream on the same connection. The client then must include a route in the metadata of the SETUP frame, or else the ConnectionSetupPayload would have to be handled with an empty mapping, which is not ideal and could also catch subsequent streams without a route. One could use a wildcard mapping but that makes it even more likely to match subsequent streams on the connection, likely not intentionally.
Furthermore, the handling of ConnectionSetupPayload is optional, so if there is no matching handler, no error is raised, unlike subsequent streams on the same connection for which an error is raised if there is no matching handler.
We should introduce a ConnectionMapping annotation for use with RSocket handlers that would be used to process connection-level frames, the initial SETUP and subsequent METADATA_PUSH. That would separate clearly the handling of four stream request types from connection-level events.
The text was updated successfully, but these errors were encountered:
rstoyanchev
changed the title
ConnectionMapping annotation for server side handling of new RSocket connections
ConnectionMapping annotation for handling of RSocket connection-level frames
Jul 8, 2019
The
ConnectionSetupPayload
at the start of on an RSocket connection is currently handled with a@MessageMapping
method like any subsequent stream on the same connection. The client then must include a route in the metadata of the SETUP frame, or else theConnectionSetupPayload
would have to be handled with an empty mapping, which is not ideal and could also catch subsequent streams without a route. One could use a wildcard mapping but that makes it even more likely to match subsequent streams on the connection, likely not intentionally.Furthermore, the handling of
ConnectionSetupPayload
is optional, so if there is no matching handler, no error is raised, unlike subsequent streams on the same connection for which an error is raised if there is no matching handler.We should introduce a
ConnectionMapping
annotation for use with RSocket handlers that would be used to process connection-level frames, the initial SETUP and subsequent METADATA_PUSH. That would separate clearly the handling of four stream request types from connection-level events.The text was updated successfully, but these errors were encountered: