Class NettyNetworkClient
java.lang.Object
eu.cloudnetservice.driver.network.netty.client.NettyNetworkClient
- All Implemented Interfaces:
NetworkClient,NetworkComponent,PacketSender,AutoCloseable
The default implementation of a network client, using the netty network client implementations.
- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Collection<NetworkChannel> private static final intprotected final io.netty5.channel.EventLoopGroupprotected final Callable<NetworkChannelHandler> protected final NetworkTaskSchedulerprotected final PacketListenerRegistryprotected final io.netty5.handler.ssl.SslContextprivate static final io.netty5.channel.WriteBufferWaterMark -
Constructor Summary
ConstructorsConstructorDescriptionNettyNetworkClient(@NonNull ComponentInfo componentInfo, @NonNull Callable<NetworkChannelHandler> handlerFactory) Constructs a new netty network client instance.NettyNetworkClient(@NonNull ComponentInfo componentInfo, @NonNull Callable<NetworkChannelHandler> handlerFactory, @Nullable SSLConfiguration sslConfiguration) Constructs a new netty network client instance. -
Method Summary
Modifier and TypeMethodDescriptionchannels()Get an immutable collection of all channels which are associated with this component.voidclose()voidCloses all open connections associated with this network component.connect(@NonNull HostAndPort hostAndPort) Connects this network client to the network server running at the given host and port.private static @Nullable io.netty5.handler.ssl.SslContextinitializeSslContext(@Nullable SSLConfiguration sslConfig) Builds the ssl context for this client if a ssl configuration was supplied and is active.Get the dispatching executor for received packets in any channel which is bound to this network component.Get the packet listener registry which will be the root registry for all channels initialized by this component.voidsendPacket(@NonNull Packet packet) Sends the given packet to the associated target.voidsendPacketSync(@NonNull Packet packet) Sends the given packet to the associated target, waiting for the packet write to the channel to complete before resuming the current thread.booleanGet if this component has ssl enabled.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface eu.cloudnetservice.driver.network.NetworkComponent
firstChannelMethods inherited from interface eu.cloudnetservice.driver.network.protocol.PacketSender
sendPacket
-
Field Details
-
CONNECTION_TIMEOUT_MILLIS
private static final int CONNECTION_TIMEOUT_MILLIS- See Also:
-
WATER_MARK
private static final io.netty5.channel.WriteBufferWaterMark WATER_MARK -
sslContext
protected final io.netty5.handler.ssl.SslContext sslContext -
eventLoopGroup
protected final io.netty5.channel.EventLoopGroup eventLoopGroup -
channels
-
packetRegistry
-
packetDispatcher
-
handlerFactory
-
-
Constructor Details
-
NettyNetworkClient
public NettyNetworkClient(@NonNull @NonNull ComponentInfo componentInfo, @NonNull @NonNull Callable<NetworkChannelHandler> handlerFactory) Constructs a new netty network client instance. Equivalent tonew NettyNetworkClient(handlerFactory, null)- Parameters:
componentInfo- the component info of the current component the client is created for.handlerFactory- the factory for new handlers to be created with.- Throws:
NullPointerException- if the given event manager, component info or factory is null.
-
NettyNetworkClient
public NettyNetworkClient(@NonNull @NonNull ComponentInfo componentInfo, @NonNull @NonNull Callable<NetworkChannelHandler> handlerFactory, @Nullable @Nullable SSLConfiguration sslConfiguration) Constructs a new netty network client instance.- Parameters:
componentInfo- the component info of the current component the client is created for.handlerFactory- the factory for new handler to be created with.sslConfiguration- the ssl configuration applying to this client, or null for no ssl configuration.- Throws:
NullPointerException- if the given event manager, component info or factory is null.
-
-
Method Details
-
initializeSslContext
@Nullable private static @Nullable io.netty5.handler.ssl.SslContext initializeSslContext(@Nullable @Nullable SSLConfiguration sslConfig) Builds the ssl context for this client if a ssl configuration was supplied and is active.- Parameters:
sslConfig- the supplied ssl configuration to build the ssl context based on, can be null.- Returns:
- the constructed ssl context based on the given configuration.
- Throws:
IllegalStateException- if an error occurs during construction of the ssl context.IllegalArgumentException- if the trust certificate file does not contain any valid certificates.
-
sslEnabled
public boolean sslEnabled()Get if this component has ssl enabled.- Specified by:
sslEnabledin interfaceNetworkComponent- Returns:
- true if this component has ssl enabled, false otherwise.
-
connect
Connects this network client to the network server running at the given host and port.- Specified by:
connectin interfaceNetworkClient- Parameters:
hostAndPort- the target host and port to which the client should get connected.- Returns:
- a task completed successfully, or with the exception thrown during the connection process.
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-
channels
Get an immutable collection of all channels which are associated with this component.- Specified by:
channelsin interfaceNetworkComponent- Returns:
- an immutable collection of all channels which are associated with this component.
-
packetDispatcher
Get the dispatching executor for received packets in any channel which is bound to this network component.- Specified by:
packetDispatcherin interfaceNetworkComponent- Returns:
- the dispatching executor for received packets.
-
packetRegistry
Get the packet listener registry which will be the root registry for all channels initialized by this component.- Specified by:
packetRegistryin interfaceNetworkComponent- Returns:
- the root packet registry for all associated channels.
-
sendPacket
Sends the given packet to the associated target.- Specified by:
sendPacketin interfacePacketSender- Parameters:
packet- the packet to send.
-
sendPacketSync
Sends the given packet to the associated target, waiting for the packet write to the channel to complete before resuming the current thread.- Specified by:
sendPacketSyncin interfacePacketSender- Parameters:
packet- the packet to send.
-
closeChannels
public void closeChannels()Closes all open connections associated with this network component.- Specified by:
closeChannelsin interfaceNetworkComponent
-