T - ClientTransport implementationCONF - Client Configuration implementationpublic abstract class ClientTransport<T extends ClientTransport<T,CONF>,CONF extends ClientTransportConfig<CONF>> extends Transport<T,CONF>
| Constructor and Description |
|---|
ClientTransport() |
| Modifier and Type | Method and Description |
|---|---|
protected Mono<? extends Connection> |
connect()
|
protected Connection |
connectNow()
Block the
ClientTransport and return a Connection. |
protected Connection |
connectNow(Duration timeout)
Block the
ClientTransport and return a Connection. |
T |
doAfterResolve(BiConsumer<? super Connection,? super SocketAddress> doAfterResolve)
Set or add a callback called after
SocketAddress is resolved successfully. |
T |
doOnConnect(Consumer<? super CONF> doOnConnect)
Set or add a callback called when
ClientTransport is about to connect to the remote endpoint. |
T |
doOnConnected(Consumer<? super Connection> doOnConnected)
Set or add a callback called after
Connection has been connected. |
T |
doOnDisconnected(Consumer<? super Connection> doOnDisconnected)
Set or add a callback called after
Connection has been disconnected. |
T |
doOnResolve(Consumer<? super Connection> doOnResolve)
Set or add a callback called before
SocketAddress is resolved. |
T |
doOnResolveError(BiConsumer<? super Connection,? super Throwable> doOnResolveError)
Set or add a callback called if an exception happens while resolving to a
SocketAddress. |
T |
host(String host)
The host to which this client should connect.
|
T |
noProxy()
Remove any previously applied Proxy configuration customization
|
T |
port(int port)
The port to which this client should connect.
|
T |
proxy(Consumer<? super ProxyProvider.TypeSpec> proxyOptions)
Apply a proxy configuration
|
T |
proxyWithSystemProperties()
Set up a proxy from the java system properties.
|
T |
remoteAddress(Supplier<? extends SocketAddress> remoteAddressSupplier)
The address to which this client should connect on each subscribe.
|
T |
resolver(AddressResolverGroup<?> resolver)
Assign an
AddressResolverGroup. |
T |
resolver(Consumer<NameResolverProvider.NameResolverSpec> nameResolverSpec)
Apply a name resolver configuration.
|
T |
runOn(LoopResources loopResources,
boolean preferNative)
Run IO loops on a supplied
EventLoopGroup from the LoopResources container. |
Mono<Void> |
warmup()
Based on the actual configuration, returns a
Mono that triggers:
an initialization of the event loop group
an initialization of the host name resolver
loads the necessary native libraries for the transport
By default, when method is not used, the connect operation absorbs the extra time needed to initialize and
load the resources. |
attr, bindAddress, channelGroup, configuration, doOnChannelInit, duplicate, metrics, metrics, observe, option, runOn, runOn, wiretap, wiretap, wiretap, wiretap, wiretapprotected Mono<? extends Connection> connect()
ClientTransport and return a Mono of Connection. If
Mono is cancelled, the underlying connection will be aborted. Once the
Connection has been emitted and is not necessary anymore, disposing must be
done by the user via DisposableChannel.dispose().Mono of Connectionprotected Connection connectNow()
ClientTransport and return a Connection. Disposing must be
done by the user via DisposableChannel.dispose(). The max connection
timeout is 45 seconds.Connectionprotected Connection connectNow(Duration timeout)
ClientTransport and return a Connection. Disposing must be
done by the user via DisposableChannel.dispose().timeout - connect timeout (resolution: ns)Connectionpublic T doOnConnect(Consumer<? super CONF> doOnConnect)
ClientTransport is about to connect to the remote endpoint.doOnConnect - a consumer observing connect eventsClientTransport referencepublic T doOnConnected(Consumer<? super Connection> doOnConnected)
Connection has been connected.doOnConnected - a consumer observing connected eventsClientTransport referencepublic T doOnDisconnected(Consumer<? super Connection> doOnDisconnected)
Connection has been disconnected.doOnDisconnected - a consumer observing disconnected eventsClientTransport referencepublic final T doOnResolve(Consumer<? super Connection> doOnResolve)
SocketAddress is resolved.doOnResolve - a consumer observing resolve eventsClientTransport referencepublic final T doAfterResolve(BiConsumer<? super Connection,? super SocketAddress> doAfterResolve)
SocketAddress is resolved successfully.doAfterResolve - a consumer observing resolved eventsClientTransport referencepublic final T doOnResolveError(BiConsumer<? super Connection,? super Throwable> doOnResolveError)
SocketAddress.doOnResolveError - a consumer observing resolve error eventsClientTransport referencepublic T host(String host)
host - the host to connect toClientTransport referencepublic T noProxy()
ClientTransport referencepublic T port(int port)
port - the port to connect toClientTransport referencepublic T proxy(Consumer<? super ProxyProvider.TypeSpec> proxyOptions)
proxyOptions - the proxy configuration callbackClientTransport referencepublic final T proxyWithSystemProperties()
If both https.proxyHost and http.proxyHost are set
it chooses https.proxyHost over http.proxyHost.
Same with the http/https proxy port.
If a ClientTransport instance already has a proxy set via proxy(Consumer)
the new instance created by this method has all proxy settings replaced
with proxy settings from the system properties only.
If the system properties do not have a configuration for a proxy, the new
instance returned by this method behaves as if there is no proxy settings,
regardless of configuration of the original ClientTransport instance.
ClientTransport referencepublic T remoteAddress(Supplier<? extends SocketAddress> remoteAddressSupplier)
remoteAddressSupplier - A supplier of the address to connect to.ClientTransportpublic T resolver(AddressResolverGroup<?> resolver)
AddressResolverGroup.resolver - the new AddressResolverGroupClientTransport referencepublic T resolver(Consumer<NameResolverProvider.NameResolverSpec> nameResolverSpec)
nameResolverSpec - the name resolver callbackClientTransport referencepublic T runOn(LoopResources loopResources, boolean preferNative)
TransportEventLoopGroup from the LoopResources container.runOn in class Transport<T extends ClientTransport<T,CONF>,CONF extends ClientTransportConfig<CONF>>loopResources - a new loop resourcespreferNative - should prefer running on epoll, kqueue or similar instead of java NIOTransport referencepublic Mono<Void> warmup()
Mono that triggers:
connect operation absorbs the extra time needed to initialize and
load the resources.Mono representing the completion of the warmup