org.springframework.messaging.rsocket

## Interface RSocketRequester.Builder

Enclosing interface:
  RSocketRequester

    public static interface RSocketRequester.Builder

Builder to create a requester by connecting to a server.

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`RSocketRequester.Builder` `apply(Consumer<RSocketRequester.Builder> configurer)` Configure this builder through a `Consumer`.
`reactor.core.publisher.Mono<RSocketRequester>` `connect(io.rsocket.transport.ClientTransport transport)` Connect to the server with the given `ClientTransport`.
`reactor.core.publisher.Mono<RSocketRequester>` `connectTcp(String host, int port)` Connect to the server over TCP.
`reactor.core.publisher.Mono<RSocketRequester>` `connectWebSocket(URI uri)` Connect to the server over WebSocket.
`RSocketRequester.Builder` `dataMimeType(org.springframework.util.MimeType mimeType)` Configure the payload data MimeType to specify on the `SETUP` frame that applies to the whole connection.
`RSocketRequester.Builder` `metadataMimeType(org.springframework.util.MimeType mimeType)` Configure the payload metadata MimeType to specify on the `SETUP` frame that applies to the whole connection.
`RSocketRequester.Builder` `rsocketConnector(RSocketConnectorConfigurer configurer)` Callback to configure the `RSocketConnector` directly.
`RSocketRequester.Builder` `rsocketFactory(ClientRSocketFactoryConfigurer configurer)` Deprecated. as of 5.2.6 following the deprecation of `RSocketFactory.ClientRSocketFactory` in RSocket 1.0 RC7. Please, use `rsocketConnector(RSocketConnectorConfigurer)`.
`RSocketRequester.Builder` `rsocketStrategies(Consumer<RSocketStrategies.Builder> configurer)` Customize the `RSocketStrategies`.
`RSocketRequester.Builder` `rsocketStrategies(RSocketStrategies strategies)` Provide the `RSocketStrategies` to use.
`RSocketRequester.Builder` `setupData(Object data)` Set the data for the setup payload.
`RSocketRequester.Builder` `setupMetadata(Object value, org.springframework.util.MimeType mimeType)` Add metadata entry to the setup payload.
`RSocketRequester.Builder` `setupRoute(String route, Object... routeVars)` Set the route for the setup payload.

### Method Detail

#### dataMimeType

    RSocketRequester.Builder dataMimeType(@Nullable
                                          org.springframework.util.MimeType mimeType)

Configure the payload data MimeType to specify on the `SETUP` frame that applies to the whole connection.

If not set, this will be initialized to the MimeType of the first `non-default` `Decoder`, or otherwise the MimeType of the first decoder.

#### metadataMimeType

    RSocketRequester.Builder metadataMimeType(org.springframework.util.MimeType mimeType)

Configure the payload metadata MimeType to specify on the `SETUP` frame that applies to the whole connection.

By default this is set to `"message/x.rsocket.composite-metadata.v0"` in which case the route, if provided, is encoded as a `"message/x.rsocket.routing.v0"` composite metadata entry. If this is set to any other MimeType, it is assumed that's the MimeType for the route, if provided.

#### setupData

    RSocketRequester.Builder setupData(Object data)

Set the data for the setup payload. The data will be encoded according to the configured `dataMimeType(MimeType)`. The data be a concrete value or any producer of a single value that can be adapted to a `Publisher` via `ReactiveAdapterRegistry`.

By default this is not set.

#### setupRoute

    RSocketRequester.Builder setupRoute(String route,
                                        Object... routeVars)

Set the route for the setup payload. The rules for formatting and encoding the route are the same as those for a request route as described in `RSocketRequester.route(String, Object...)`.

By default this is not set.

#### setupMetadata

    RSocketRequester.Builder setupMetadata(Object value,
                                           @Nullable
                                           org.springframework.util.MimeType mimeType)

Add metadata entry to the setup payload. Composite metadata must be in use if this is called more than once or in addition to `setupRoute(String, Object...)`. The metadata value be a concrete value or any producer of a single value that can be adapted to a `Publisher` via `ReactiveAdapterRegistry`.

#### rsocketStrategies

    RSocketRequester.Builder rsocketStrategies(@Nullable
                                               RSocketStrategies strategies)

Provide the `RSocketStrategies` to use.

This is useful for changing the default settings, yet still allowing further customizations via `rsocketStrategies(Consumer)`. If not set, defaults are obtained from `RSocketStrategies.builder()`.

Parameters:
  `strategies` - the strategies to use

#### rsocketStrategies

    RSocketRequester.Builder rsocketStrategies(Consumer<RSocketStrategies.Builder> configurer)

Customize the `RSocketStrategies`.

Allows further customization on `RSocketStrategies`, mutating them if they were `set`, or starting from `RSocketStrategies.builder()` defaults}.

#### rsocketConnector

    RSocketRequester.Builder rsocketConnector(RSocketConnectorConfigurer configurer)

Callback to configure the `RSocketConnector` directly.

- The data and metadata mime types cannot be set directly on the `RSocketConnector` and will be overridden. Use the shortcuts `dataMimeType(MimeType)` and `metadataMimeType(MimeType)` on this builder instead.
- The frame decoder also cannot be set directly and instead is set to match the configured `DataBufferFactory`.
- For the `setupPayload`, consider using methods on this builder to specify the route, other metadata, and data as Object values to be encoded.
- To configure client side responding, see `RSocketMessageHandler.responder(RSocketStrategies, Object...)`.

Since:
  5.2.6

#### rsocketFactory

    @Deprecated
    RSocketRequester.Builder rsocketFactory(ClientRSocketFactoryConfigurer configurer)

Deprecated. as of 5.2.6 following the deprecation of `RSocketFactory.ClientRSocketFactory` in RSocket 1.0 RC7. Please, use `rsocketConnector(RSocketConnectorConfigurer)`.
Callback to configure the `ClientRSocketFactory` directly.

- The data and metadata mime types cannot be set directly on the `ClientRSocketFactory` and will be overridden. Use the shortcuts `dataMimeType(MimeType)` and `metadataMimeType(MimeType)` on this builder instead.
- The frame decoder also cannot be set directly and instead is set to match the configured `DataBufferFactory`.
- For the `setupPayload`, consider using methods on this builder to specify the route, other metadata, and data as Object values to be encoded.
- To configure client side responding, see `RSocketMessageHandler.clientResponder(RSocketStrategies, Object...)`.

#### apply

    RSocketRequester.Builder apply(Consumer<RSocketRequester.Builder> configurer)

Configure this builder through a `Consumer`. This enables libraries such as Spring Security to provide shortcuts for applying a set of related customizations.

Parameters:
  `configurer` - the configurer to apply

#### connectTcp

    reactor.core.publisher.Mono<RSocketRequester> connectTcp(String host,
                                                             int port)

Connect to the server over TCP.

Parameters:
  `host` - the server host
  `port` - the server port
Returns:
  an `RSocketRequester` for the connection
See Also:
  `TcpClientTransport`

#### connectWebSocket

    reactor.core.publisher.Mono<RSocketRequester> connectWebSocket(URI uri)

Connect to the server over WebSocket.

Parameters:
  `uri` - the RSocket server endpoint URI
Returns:
  an `RSocketRequester` for the connection
See Also:
  `WebsocketClientTransport`

#### connect

    reactor.core.publisher.Mono<RSocketRequester> connect(io.rsocket.transport.ClientTransport transport)

Connect to the server with the given `ClientTransport`.

Parameters:
  `transport` - the client transport to use
Returns:
  an `RSocketRequester` for the connection