Class TcpServerConfig


  • public final class TcpServerConfig
    extends java.lang.Object
    Configuration for TCP based servers.
    • Constructor Detail

      • TcpServerConfig

        public TcpServerConfig()
    • Method Detail

      • transportObserver

        public void transportObserver​(TransportObserver transportObserver)
        Sets a TransportObserver that provides visibility into transport events.
        Parameters:
        transportObserver - A TransportObserver that provides visibility into transport events.
      • backlog

        public TcpServerConfig backlog​(int backlog)
        The maximum queue length for incoming connection indications (a request to connect) is set to the backlog parameter. If a connection indication arrives when the queue is full, the connection may time out.
        Parameters:
        backlog - the backlog to use when accepting connections
        Returns:
        this
      • asReadOnly

        public ReadOnlyTcpServerConfig asReadOnly​(java.util.List<java.lang.String> supportedAlpnProtocols)
        Returns an immutable view of this config, any changes to this config will not alter the returned view.
        Parameters:
        supportedAlpnProtocols - a list of supported protocols for ALPN configuration
        Returns:
        an immutable view of this config
      • socketOption

        public final <T> void socketOption​(java.net.SocketOption<T> option,
                                           T value)
        Add a SocketOption that is applied.
        Type Parameters:
        T - the type of the value
        Parameters:
        option - the option to apply
        value - the value
        Throws:
        java.lang.IllegalArgumentException - if the SocketOption is not supported
        See Also:
        StandardSocketOptions, ServiceTalkSocketOptions
      • flushStrategy

        public final void flushStrategy​(FlushStrategy flushStrategy)
        Sets FlushStrategy to use for all connections.
        Parameters:
        flushStrategy - FlushStrategy to use for all connections
      • enableWireLogging

        public final void enableWireLogging​(java.lang.String loggerName)
        Enable wire-logging for all connections. All wire events will be logged at trace level.
        Parameters:
        loggerName - The name of the logger to log wire events
      • enableWireLogging

        public final void enableWireLogging​(java.lang.String loggerName,
                                            LogLevel logLevel,
                                            java.util.function.BooleanSupplier logUserData)
        Enable wire-logging for all connections. All wire events will be logged at trace level.
        Parameters:
        loggerName - provides the logger to log data/events to/from the wire.
        logLevel - the level to log data/events to/from the wire.
        logUserData - true to include user data (e.g. data, headers, etc.). false to exclude user data and log only network events.
      • secure

        public final void secure​(SecurityConfig securityConfig)
        Add security related config.
        Parameters:
        securityConfig - the ReadOnlyServerSecurityConfig to use