Class NettyNetworkClient
java.lang.Object
eu.cloudnetservice.driver.impl.network.netty.client.NettyNetworkClient
- All Implemented Interfaces:
eu.cloudnetservice.driver.network.NetworkClient, eu.cloudnetservice.driver.network.NetworkComponent, eu.cloudnetservice.driver.network.protocol.PacketSender, AutoCloseable
@Singleton
public class NettyNetworkClient
extends Object
implements eu.cloudnetservice.driver.network.NetworkClient
The default implementation of a network client, using the netty network client implementations.
- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Collection<eu.cloudnetservice.driver.network.NetworkChannel> private static final intprotected final io.netty5.channel.EventLoopGroupprotected final Callable<eu.cloudnetservice.driver.network.NetworkChannelHandler> protected final NetworkTaskSchedulerprotected final eu.cloudnetservice.driver.network.protocol.PacketListenerRegistryprotected final io.netty5.handler.ssl.SslContextprivate static final io.netty5.channel.WriteBufferWaterMark -
Constructor Summary
ConstructorsConstructorDescriptionNettyNetworkClient(@NonNull eu.cloudnetservice.driver.ComponentInfo componentInfo, @NonNull Callable<eu.cloudnetservice.driver.network.NetworkChannelHandler> handlerFactory) Constructs a new netty network client instance.NettyNetworkClient(@NonNull eu.cloudnetservice.driver.ComponentInfo componentInfo, @NonNull Callable<eu.cloudnetservice.driver.network.NetworkChannelHandler> handlerFactory, @Nullable eu.cloudnetservice.driver.network.ssl.SSLConfiguration sslConfiguration) Constructs a new netty network client instance. -
Method Summary
Modifier and TypeMethodDescription@NonNull Collection<eu.cloudnetservice.driver.network.NetworkChannel> channels()voidclose()voidprivate static @Nullable io.netty5.handler.ssl.SslContextinitializeSslContext(@Nullable eu.cloudnetservice.driver.network.ssl.SSLConfiguration sslConfig) Builds the ssl context for this client if a ssl configuration was supplied and is active.@NonNull eu.cloudnetservice.driver.network.protocol.PacketListenerRegistryvoidsendPacket(@NonNull eu.cloudnetservice.driver.network.protocol.Packet packet) voidsendPacketSync(@NonNull eu.cloudnetservice.driver.network.protocol.Packet packet) booleanMethods inherited from class 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
protected final eu.cloudnetservice.driver.network.protocol.PacketListenerRegistry packetRegistry -
packetDispatcher
-
handlerFactory
-
-
Constructor Details
-
NettyNetworkClient
public NettyNetworkClient(@NonNull @NonNull eu.cloudnetservice.driver.ComponentInfo componentInfo, @NonNull @NonNull Callable<eu.cloudnetservice.driver.network.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 eu.cloudnetservice.driver.ComponentInfo componentInfo, @NonNull @NonNull Callable<eu.cloudnetservice.driver.network.NetworkChannelHandler> handlerFactory, @Nullable @Nullable eu.cloudnetservice.driver.network.ssl.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 eu.cloudnetservice.driver.network.ssl.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()- Specified by:
sslEnabledin interfaceeu.cloudnetservice.driver.network.NetworkComponent
-
connect
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-
channels
- Specified by:
channelsin interfaceeu.cloudnetservice.driver.network.NetworkComponent
-
packetDispatcher
-
packetRegistry
-
sendPacket
-
sendPacketSync
-
closeChannels
public void closeChannels()- Specified by:
closeChannelsin interfaceeu.cloudnetservice.driver.network.NetworkComponent
-