Class NetServerOptions

    • Field Detail

      • DEFAULT_PORT

        public static final int DEFAULT_PORT
        The default port to listen on = 0 (meaning a random ephemeral free port will be chosen)
        See Also:
        Constant Field Values
      • DEFAULT_HOST

        public static final String DEFAULT_HOST
        The default host to listen on = "0.0.0.0" (meaning listen on all available interfaces).
        See Also:
        Constant Field Values
      • DEFAULT_ACCEPT_BACKLOG

        public static final int DEFAULT_ACCEPT_BACKLOG
        The default accept backlog = 1024
        See Also:
        Constant Field Values
      • DEFAULT_USE_PROXY_PROTOCOL

        public static final boolean DEFAULT_USE_PROXY_PROTOCOL
        Default value of whether the server supports HA PROXY protocol = false
        See Also:
        Constant Field Values
      • DEFAULT_PROXY_PROTOCOL_TIMEOUT

        public static final long DEFAULT_PROXY_PROTOCOL_TIMEOUT
        The default value of HA PROXY protocol timeout = 10
        See Also:
        Constant Field Values
      • DEFAULT_PROXY_PROTOCOL_TIMEOUT_TIME_UNIT

        public static final TimeUnit DEFAULT_PROXY_PROTOCOL_TIMEOUT_TIME_UNIT
        Default HA PROXY protocol time unit = SECONDS
      • DEFAULT_REGISTER_WRITE_HANDLER

        public static final boolean DEFAULT_REGISTER_WRITE_HANDLER
        Whether a write-handler should be registered by default = false.
        See Also:
        Constant Field Values
    • Constructor Detail

      • NetServerOptions

        public NetServerOptions()
        Default constructor
      • NetServerOptions

        public NetServerOptions​(NetServerOptions other)
        Copy constructor
        Parameters:
        other - the options to copy
      • NetServerOptions

        public NetServerOptions​(JsonObject json)
        Create some options from JSON
        Parameters:
        json - the JSON
    • Method Detail

      • copy

        public NetServerOptions copy()
        Copy these options.
        Returns:
        a copy of this
      • setSendBufferSize

        public NetServerOptions setSendBufferSize​(int sendBufferSize)
        Description copied from class: NetworkOptions
        Set the TCP send buffer size
        Overrides:
        setSendBufferSize in class TCPSSLOptions
        Parameters:
        sendBufferSize - the buffers size, in bytes
        Returns:
        a reference to this, so the API can be used fluently
      • setReceiveBufferSize

        public NetServerOptions setReceiveBufferSize​(int receiveBufferSize)
        Description copied from class: NetworkOptions
        Set the TCP receive buffer size
        Overrides:
        setReceiveBufferSize in class TCPSSLOptions
        Parameters:
        receiveBufferSize - the buffers size, in bytes
        Returns:
        a reference to this, so the API can be used fluently
      • setReuseAddress

        public NetServerOptions setReuseAddress​(boolean reuseAddress)
        Description copied from class: NetworkOptions
        Set the value of reuse address
        Overrides:
        setReuseAddress in class TCPSSLOptions
        Parameters:
        reuseAddress - the value of reuse address
        Returns:
        a reference to this, so the API can be used fluently
      • setReusePort

        public NetServerOptions setReusePort​(boolean reusePort)
        Description copied from class: NetworkOptions
        Set the value of reuse port.

        This is only supported by native transports.

        Overrides:
        setReusePort in class TCPSSLOptions
        Parameters:
        reusePort - the value of reuse port
        Returns:
        a reference to this, so the API can be used fluently
      • setTrafficClass

        public NetServerOptions setTrafficClass​(int trafficClass)
        Description copied from class: NetworkOptions
        Set the value of traffic class
        Overrides:
        setTrafficClass in class TCPSSLOptions
        Parameters:
        trafficClass - the value of traffic class
        Returns:
        a reference to this, so the API can be used fluently
      • setTcpNoDelay

        public NetServerOptions setTcpNoDelay​(boolean tcpNoDelay)
        Description copied from class: TCPSSLOptions
        Set whether TCP no delay is enabled
        Overrides:
        setTcpNoDelay in class TCPSSLOptions
        Parameters:
        tcpNoDelay - true if TCP no delay is enabled (Nagle disabled)
        Returns:
        a reference to this, so the API can be used fluently
      • setTcpKeepAlive

        public NetServerOptions setTcpKeepAlive​(boolean tcpKeepAlive)
        Description copied from class: TCPSSLOptions
        Set whether TCP keep alive is enabled
        Overrides:
        setTcpKeepAlive in class TCPSSLOptions
        Parameters:
        tcpKeepAlive - true if TCP keep alive is enabled
        Returns:
        a reference to this, so the API can be used fluently
      • setSoLinger

        public NetServerOptions setSoLinger​(int soLinger)
        Description copied from class: TCPSSLOptions
        Set whether SO_linger keep alive is enabled
        Overrides:
        setSoLinger in class TCPSSLOptions
        Parameters:
        soLinger - true if SO_linger is enabled
        Returns:
        a reference to this, so the API can be used fluently
      • setIdleTimeout

        public NetServerOptions setIdleTimeout​(int idleTimeout)
        Description copied from class: TCPSSLOptions
        Set the idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is received nor sent within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
        Overrides:
        setIdleTimeout in class TCPSSLOptions
        Parameters:
        idleTimeout - the timeout
        Returns:
        a reference to this, so the API can be used fluently
      • setReadIdleTimeout

        public NetServerOptions setReadIdleTimeout​(int idleTimeout)
        Description copied from class: TCPSSLOptions
        Set the read idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is received within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
        Overrides:
        setReadIdleTimeout in class TCPSSLOptions
        Parameters:
        idleTimeout - the read timeout
        Returns:
        a reference to this, so the API can be used fluently
      • setWriteIdleTimeout

        public NetServerOptions setWriteIdleTimeout​(int idleTimeout)
        Description copied from class: TCPSSLOptions
        Set the write idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is sent within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
        Overrides:
        setWriteIdleTimeout in class TCPSSLOptions
        Parameters:
        idleTimeout - the write timeout
        Returns:
        a reference to this, so the API can be used fluently
      • setIdleTimeoutUnit

        public NetServerOptions setIdleTimeoutUnit​(TimeUnit idleTimeoutUnit)
        Description copied from class: TCPSSLOptions
        Set the idle timeout unit. If not specified, default is seconds.
        Overrides:
        setIdleTimeoutUnit in class TCPSSLOptions
        Parameters:
        idleTimeoutUnit - specify time unit.
        Returns:
        a reference to this, so the API can be used fluently
      • setSsl

        public NetServerOptions setSsl​(boolean ssl)
        Description copied from class: TCPSSLOptions
        Set whether SSL/TLS is enabled
        Overrides:
        setSsl in class TCPSSLOptions
        Parameters:
        ssl - true if enabled
        Returns:
        a reference to this, so the API can be used fluently
      • setUseAlpn

        public NetServerOptions setUseAlpn​(boolean useAlpn)
        Description copied from class: TCPSSLOptions
        Set the ALPN usage.
        Overrides:
        setUseAlpn in class TCPSSLOptions
        Parameters:
        useAlpn - true when Application-Layer Protocol Negotiation should be used
      • addEnabledSecureTransportProtocol

        public NetServerOptions addEnabledSecureTransportProtocol​(String protocol)
        Description copied from class: TCPSSLOptions
        Add an enabled SSL/TLS protocols, appended to the ordered protocols.
        Overrides:
        addEnabledSecureTransportProtocol in class TCPSSLOptions
        Parameters:
        protocol - the SSL/TLS protocol to enable
        Returns:
        a reference to this, so the API can be used fluently
      • removeEnabledSecureTransportProtocol

        public NetServerOptions removeEnabledSecureTransportProtocol​(String protocol)
        Description copied from class: TCPSSLOptions
        Removes an enabled SSL/TLS protocol from the ordered protocols.
        Overrides:
        removeEnabledSecureTransportProtocol in class TCPSSLOptions
        Parameters:
        protocol - the SSL/TLS protocol to disable
        Returns:
        a reference to this, so the API can be used fluently
      • setTcpFastOpen

        public NetServerOptions setTcpFastOpen​(boolean tcpFastOpen)
        Description copied from class: TCPSSLOptions
        Enable the TCP_FASTOPEN option - only with linux native transport.
        Overrides:
        setTcpFastOpen in class TCPSSLOptions
        Parameters:
        tcpFastOpen - the fast open value
      • setTcpCork

        public NetServerOptions setTcpCork​(boolean tcpCork)
        Description copied from class: TCPSSLOptions
        Enable the TCP_CORK option - only with linux native transport.
        Overrides:
        setTcpCork in class TCPSSLOptions
        Parameters:
        tcpCork - the cork value
      • setTcpQuickAck

        public NetServerOptions setTcpQuickAck​(boolean tcpQuickAck)
        Description copied from class: TCPSSLOptions
        Enable the TCP_QUICKACK option - only with linux native transport.
        Overrides:
        setTcpQuickAck in class TCPSSLOptions
        Parameters:
        tcpQuickAck - the quick ack value
      • setEnabledSecureTransportProtocols

        public NetServerOptions setEnabledSecureTransportProtocols​(Set<String> enabledSecureTransportProtocols)
        Description copied from class: TCPSSLOptions
        Sets the list of enabled SSL/TLS protocols.
        Overrides:
        setEnabledSecureTransportProtocols in class TCPSSLOptions
        Parameters:
        enabledSecureTransportProtocols - the SSL/TLS protocols to enable
        Returns:
        a reference to this, so the API can be used fluently
      • setSslHandshakeTimeout

        public NetServerOptions setSslHandshakeTimeout​(long sslHandshakeTimeout)
        Description copied from class: TCPSSLOptions
        Set the SSL handshake timeout, default time unit is seconds.
        Overrides:
        setSslHandshakeTimeout in class TCPSSLOptions
        Parameters:
        sslHandshakeTimeout - the SSL handshake timeout to set, in milliseconds
        Returns:
        a reference to this, so the API can be used fluently
      • setSslHandshakeTimeoutUnit

        public NetServerOptions setSslHandshakeTimeoutUnit​(TimeUnit sslHandshakeTimeoutUnit)
        Description copied from class: TCPSSLOptions
        Set the SSL handshake timeout unit. If not specified, default is seconds.
        Overrides:
        setSslHandshakeTimeoutUnit in class TCPSSLOptions
        Parameters:
        sslHandshakeTimeoutUnit - specify time unit.
        Returns:
        a reference to this, so the API can be used fluently
      • getAcceptBacklog

        public int getAcceptBacklog()
        Returns:
        the value of accept backlog
      • setAcceptBacklog

        public NetServerOptions setAcceptBacklog​(int acceptBacklog)
        Set the accept back log
        Parameters:
        acceptBacklog - accept backlog
        Returns:
        a reference to this, so the API can be used fluently
      • getPort

        public int getPort()
        Returns:
        the port
      • setPort

        public NetServerOptions setPort​(int port)
        Set the port
        Parameters:
        port - the port
        Returns:
        a reference to this, so the API can be used fluently
      • getHost

        public String getHost()
        Returns:
        the host
      • setHost

        public NetServerOptions setHost​(String host)
        Set the host
        Parameters:
        host - the host
        Returns:
        a reference to this, so the API can be used fluently
      • getClientAuth

        public ClientAuth getClientAuth()
      • setClientAuth

        public NetServerOptions setClientAuth​(ClientAuth clientAuth)
        Set whether client auth is required
        Parameters:
        clientAuth - One of "NONE, REQUEST, REQUIRED". If it's set to "REQUIRED" then server will require the SSL cert to be presented otherwise it won't accept the request. If it's set to "REQUEST" then it won't mandate the certificate to be presented, basically make it optional.
        Returns:
        a reference to this, so the API can be used fluently
      • setLogActivity

        public NetServerOptions setLogActivity​(boolean logEnabled)
        Description copied from class: NetworkOptions
        Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
        Overrides:
        setLogActivity in class TCPSSLOptions
        Parameters:
        logEnabled - true for logging the network activity
        Returns:
        a reference to this, so the API can be used fluently
      • setActivityLogDataFormat

        public NetServerOptions setActivityLogDataFormat​(ByteBufFormat activityLogDataFormat)
        Description copied from class: NetworkOptions
        Set the value of Netty's logging handler's data format: Netty's pipeline is configured for logging on Netty's logger.
        Overrides:
        setActivityLogDataFormat in class TCPSSLOptions
        Parameters:
        activityLogDataFormat - the format to use
        Returns:
        a reference to this, so the API can be used fluently
      • isSni

        public boolean isSni()
        Returns:
        whether the server supports Server Name Indication
      • setSni

        public NetServerOptions setSni​(boolean sni)
        Set whether the server supports Server Name Indiciation
        Returns:
        a reference to this, so the API can be used fluently
      • isUseProxyProtocol

        public boolean isUseProxyProtocol()
        Returns:
        whether the server uses the HA Proxy protocol
      • setUseProxyProtocol

        public NetServerOptions setUseProxyProtocol​(boolean useProxyProtocol)
        Set whether the server uses the HA Proxy protocol
        Returns:
        a reference to this, so the API can be used fluently
      • getProxyProtocolTimeout

        public long getProxyProtocolTimeout()
        Returns:
        the Proxy protocol timeout, in time unit specified by getProxyProtocolTimeoutUnit().
      • setProxyProtocolTimeout

        public NetServerOptions setProxyProtocolTimeout​(long proxyProtocolTimeout)
        Set the Proxy protocol timeout, default time unit is seconds.
        Parameters:
        proxyProtocolTimeout - the Proxy protocol timeout to set
        Returns:
        a reference to this, so the API can be used fluently
      • setProxyProtocolTimeoutUnit

        public NetServerOptions setProxyProtocolTimeoutUnit​(TimeUnit proxyProtocolTimeoutUnit)
        Set the Proxy protocol timeout unit. If not specified, default is seconds.
        Parameters:
        proxyProtocolTimeoutUnit - specify time unit.
        Returns:
        a reference to this, so the API can be used fluently
      • getProxyProtocolTimeoutUnit

        public TimeUnit getProxyProtocolTimeoutUnit()
        Returns:
        the Proxy protocol timeout unit.
      • getTrafficShapingOptions

        public TrafficShapingOptions getTrafficShapingOptions()
        Returns:
        traffic shaping options used by Net server.
      • setTrafficShapingOptions

        public NetServerOptions setTrafficShapingOptions​(TrafficShapingOptions trafficShapingOptions)
        Set traffic shaping options. If not specified, traffic is unthrottled.
        Parameters:
        trafficShapingOptions - options used by traffic handler
        Returns:
        a reference to this, so the API can be used fluently
      • isRegisterWriteHandler

        public boolean isRegisterWriteHandler()
        Returns:
        true if a write-handler should be registered on the EventBus, otherwise false
      • setRegisterWriteHandler

        public NetServerOptions setRegisterWriteHandler​(boolean registerWriteHandler)
        Whether a write-handler should be registered on the EventBus.

        Defaults to false.

        Parameters:
        registerWriteHandler - true to register a write-handler
        Returns:
        a reference to this, so the API can be used fluently
        See Also:
        NetSocket.writeHandlerID()
      • isFileRegionEnabled

        public boolean isFileRegionEnabled()
        Returns:
        whether the server should use file region