Interface RSocketRequester
- All Superinterfaces:
reactor.core.Disposable
public interface RSocketRequester
extends reactor.core.Disposable
A thin wrapper around a sending
RSocket
with a fluent API accepting
and returning higher level Objects for input and for output, along with
methods to prepare routing and other metadata.- Since:
- 5.2
- Author:
- Rossen Stoyanchev, Brian Clozel
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Builder to create a requester by connecting to a server.static interface
Spec for providing additional composite metadata entries.static interface
Spec to declare the input for an RSocket request.static interface
Spec to declare the expected output for an RSocket request.Nested classes/interfaces inherited from interface reactor.core.Disposable
reactor.core.Disposable.Composite, reactor.core.Disposable.Swap
-
Method Summary
Modifier and TypeMethodDescriptionstatic RSocketRequester.Builder
builder()
Obtain a builder to create a clientRSocketRequester
by connecting to an RSocket server.Return the dataMimeType
selected for the underlying RSocket at connection time.default void
dispose()
Shortcut method that delegates to the same on the underlyingrsocketClient()
in order to close the connection from the underlying transport and notify subscribers.default boolean
Shortcut method that delegates to the same on the underlyingrsocketClient()
.Begin to specify a new request with the given metadata value, which can be a concrete value or any producer of a single value that can be adapted to aPublisher
viaReactiveAdapterRegistry
.Return the metadataMimeType
selected for the underlying RSocket at connection time.Begin to specify a new request with the given route to a remote handler.@Nullable io.rsocket.RSocket
rsocket()
Return the underlyingRSocket
if the requester was created with a "live" RSocket viawrap(RSocket, MimeType, MimeType, RSocketStrategies)
or via one of the (deprecated) connect methods on theRSocketRequester
builder, or otherwise returnnull
.io.rsocket.core.RSocketClient
Return the underlyingRSocketClient
used to make requests with.Return the configuredRSocketStrategies
.static RSocketRequester
wrap
(io.rsocket.RSocket rsocket, MimeType dataMimeType, MimeType metadataMimeType, RSocketStrategies strategies) Wrap an existingRSocket
.
-
Method Details
-
rsocketClient
io.rsocket.core.RSocketClient rsocketClient()Return the underlyingRSocketClient
used to make requests with.- Since:
- 5.3
-
rsocket
@Nullable io.rsocket.RSocket rsocket()Return the underlyingRSocket
if the requester was created with a "live" RSocket viawrap(RSocket, MimeType, MimeType, RSocketStrategies)
or via one of the (deprecated) connect methods on theRSocketRequester
builder, or otherwise returnnull
. -
dataMimeType
MimeType dataMimeType()Return the dataMimeType
selected for the underlying RSocket at connection time. On the client side this is configured viaRSocketRequester.Builder.dataMimeType(MimeType)
while on the server side it's obtained from theConnectionSetupPayload
. -
metadataMimeType
MimeType metadataMimeType()Return the metadataMimeType
selected for the underlying RSocket at connection time. On the client side this is configured viaRSocketRequester.Builder.metadataMimeType(MimeType)
while on the server side it's obtained from theConnectionSetupPayload
. -
strategies
RSocketStrategies strategies()Return the configuredRSocketStrategies
. -
route
Begin to specify a new request with the given route to a remote handler.The route can be a template with placeholders, for example,
"flight.{code}"
in which case the supplied route variables are formatted viatoString()
and expanded into the template. If a formatted variable contains a "." it is replaced with the escape sequence "%2E" to avoid treating it as separator by the responder.If the connection is set to use composite metadata, the route is encoded as
"message/x.rsocket.routing.v0"
. Otherwise, the route is encoded according to the mime type for the connection.- Parameters:
route
- the route expressing a remote handler mappingrouteVars
- variables to be expanded into the route template- Returns:
- a spec for further defining and executing the request
-
metadata
Begin to specify a new request with the given metadata value, which can be a concrete value or any producer of a single value that can be adapted to aPublisher
viaReactiveAdapterRegistry
.- Parameters:
metadata
- the metadata value to encodemimeType
- the mime type that describes the metadata; This is required for connection using composite metadata. Otherwise, the value is encoded according to the mime type for the connection and this argument may be left asnull
.
-
dispose
default void dispose()Shortcut method that delegates to the same on the underlyingrsocketClient()
in order to close the connection from the underlying transport and notify subscribers.- Specified by:
dispose
in interfacereactor.core.Disposable
- Since:
- 5.3.7
-
isDisposed
default boolean isDisposed()Shortcut method that delegates to the same on the underlyingrsocketClient()
.- Specified by:
isDisposed
in interfacereactor.core.Disposable
- Since:
- 5.3.7
-
builder
Obtain a builder to create a clientRSocketRequester
by connecting to an RSocket server. -
wrap
static RSocketRequester wrap(io.rsocket.RSocket rsocket, MimeType dataMimeType, MimeType metadataMimeType, RSocketStrategies strategies) Wrap an existingRSocket
. Typically for internal framework use, to wrap the remoteRSocket
in a client or server responder, but it can also be used to wrap anyRSocket
.
-