Package io.vertx.mqtt
Class MqttServerOptions
- java.lang.Object
-
- io.vertx.core.net.NetworkOptions
-
- io.vertx.core.net.TCPSSLOptions
-
- io.vertx.core.net.NetServerOptions
-
- io.vertx.mqtt.MqttServerOptions
-
public class MqttServerOptions extends NetServerOptions
Represents options used by the MQTT server
-
-
Field Summary
Fields Modifier and Type Field Description static booleanDEFAULT_AUTO_CLIENT_IDstatic intDEFAULT_MAX_CLIENT_ID_LENGTHstatic intDEFAULT_MAX_MESSAGE_SIZEstatic booleanDEFAULT_PER_FRAME_WEBSOCKET_COMPRESSION_SUPPORTEDstatic booleanDEFAULT_PER_MESSAGE_WEBSOCKET_COMPRESSION_SUPPORTEDstatic intDEFAULT_PORTstatic intDEFAULT_TIMEOUT_ON_CONNECTstatic intDEFAULT_TLS_PORTstatic booleanDEFAULT_USE_WEB_SOCKETstatic intDEFAULT_WEB_SOCKET_MAX_FRAME_SIZEstatic booleanDEFAULT_WEBSOCKET_ALLOW_SERVER_NO_CONTEXTstatic intDEFAULT_WEBSOCKET_COMPRESSION_LEVELstatic booleanDEFAULT_WEBSOCKET_PREFERRED_CLIENT_NO_CONTEXTstatic StringMQTT_SUBPROTOCOL_CSV_LIST-
Fields inherited from class io.vertx.core.net.NetServerOptions
DEFAULT_ACCEPT_BACKLOG, DEFAULT_HOST, DEFAULT_PROXY_PROTOCOL_TIMEOUT, DEFAULT_PROXY_PROTOCOL_TIMEOUT_TIME_UNIT, DEFAULT_REGISTER_WRITE_HANDLER, DEFAULT_USE_PROXY_PROTOCOL
-
Fields inherited from class io.vertx.core.net.TCPSSLOptions
DEFAULT_IDLE_TIMEOUT, DEFAULT_IDLE_TIMEOUT_TIME_UNIT, DEFAULT_READ_IDLE_TIMEOUT, DEFAULT_SO_LINGER, DEFAULT_SSL, DEFAULT_SSL_ENGINE, DEFAULT_TCP_CORK, DEFAULT_TCP_FAST_OPEN, DEFAULT_TCP_KEEP_ALIVE, DEFAULT_TCP_NO_DELAY, DEFAULT_TCP_QUICKACK, DEFAULT_TCP_USER_TIMEOUT, DEFAULT_WRITE_IDLE_TIMEOUT
-
Fields inherited from class io.vertx.core.net.NetworkOptions
DEFAULT_LOG_ACTIVITY_FORMAT, DEFAULT_LOG_ENABLED, DEFAULT_RECEIVE_BUFFER_SIZE, DEFAULT_REUSE_ADDRESS, DEFAULT_REUSE_PORT, DEFAULT_SEND_BUFFER_SIZE, DEFAULT_TRAFFIC_CLASS
-
-
Constructor Summary
Constructors Constructor Description MqttServerOptions()Default constructorMqttServerOptions(JsonObject json)Create an options from JSONMqttServerOptions(MqttServerOptions other)Copy constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MqttServerOptionsaddCrlPath(String crlPath)Add a CRL pathMqttServerOptionsaddCrlValue(Buffer crlValue)Add a CRL valueMqttServerOptionsaddEnabledCipherSuite(String suite)Add an enabled cipher suite, appended to the ordered suites.MqttServerOptionsaddEnabledSecureTransportProtocol(String protocol)Add an enabled SSL/TLS protocols, appended to the ordered protocols.intgetMaxClientIdLength()intgetMaxMessageSize()longgetProxyProtocolTimeout()TimeUnitgetProxyProtocolTimeoutUnit()intgetWebSocketCompressionLevel()intgetWebSocketMaxFrameSize()booleanisAutoClientId()booleanisPerFrameWebSocketCompressionSupported()Get whether WebSocket the per-frame deflate compression extension is supported.booleanisPerMessageWebSocketCompressionSupported()Get whether WebSocket the per-frame deflate compression extension is supported.booleanisUseProxyProtocol()booleanisUseWebSocket()booleanisWebSocketAllowServerNoContext()booleanisWebSocketPreferredClientNoContext()MqttServerOptionssetAutoClientId(boolean isAutoClientId)Set if clientid should be auto-generated when it's "zero-bytes"MqttServerOptionssetClientAuth(ClientAuth clientAuth)Set whether client auth is requiredMqttServerOptionssetHost(String host)Set the hostMqttServerOptionssetKeyCertOptions(KeyCertOptions options)Set the key/cert options.MqttServerOptionssetMaxClientIdLength(int maxClientIdLength)Set the max client id length.MqttServerOptionssetMaxMessageSize(int maxMessageSize)Set max MQTT message sizeMqttServerOptionssetPerFrameWebSocketCompressionSupported(boolean supported)Enable or disable support for the WebSocket per-frame deflate compression extension.MqttServerOptionssetPerMessageWebSocketCompressionSupported(boolean supported)Enable or disable support for WebSocket per-message deflate compression extension.MqttServerOptionssetPort(int port)Set the portMqttServerOptionssetProxyProtocolTimeout(long proxyProtocolTimeout)Set the Proxy protocol timeout, default time unit is seconds.MqttServerOptionssetProxyProtocolTimeoutUnit(TimeUnit proxyProtocolTimeoutUnit)Set the Proxy protocol timeout unit.MqttServerOptionssetReceiveBufferSize(int receiveBufferSize)Set the TCP receive buffer sizeMqttServerOptionssetSni(boolean sni)Set whether the server supports Server Name IndiciationMqttServerOptionssetSsl(boolean ssl)Set whether SSL/TLS is enabledMqttServerOptionssetTimeoutOnConnect(int timeoutOnConnect)Set the timeout on CONNECT packetMqttServerOptionssetTrustOptions(TrustOptions options)Set the trust options.MqttServerOptionssetUseProxyProtocol(boolean useProxyProtocol)Set whether the server uses the HA Proxy protocolMqttServerOptionssetUseWebSocket(boolean useWebSocket)enable mqtt over websocketMqttServerOptionssetWebSocketAllowServerNoContext(boolean accept)Set whether the WebSocket server will accept theserver_no_context_takeoverparameter of the per-message deflate compression extension offered by the client.MqttServerOptionssetWebSocketCompressionLevel(int compressionLevel)Set the WebSocket compression level.voidsetWebSocketMaxFrameSize(int webSocketMaxFrameSize)Set the WebSocket max frame size.MqttServerOptionssetWebSocketPreferredClientNoContext(boolean accept)Set whether the WebSocket server will accept theclient_no_context_takeoverparameter of the per-message deflate compression extension offered by the client.inttimeoutOnConnect()JsonObjecttoJson()Convert to JSON-
Methods inherited from class io.vertx.core.net.NetServerOptions
copy, getAcceptBacklog, getClientAuth, getHost, getOrCreateSSLOptions, getPort, getSslOptions, getTrafficShapingOptions, isFileRegionEnabled, isRegisterWriteHandler, isSni, removeEnabledCipherSuite, removeEnabledSecureTransportProtocol, setAcceptBacklog, setActivityLogDataFormat, setEnabledSecureTransportProtocols, setIdleTimeout, setIdleTimeoutUnit, setLogActivity, setReadIdleTimeout, setRegisterWriteHandler, setReuseAddress, setReusePort, setSendBufferSize, setSoLinger, setSslEngineOptions, setSslHandshakeTimeout, setSslHandshakeTimeoutUnit, setTcpCork, setTcpFastOpen, setTcpKeepAlive, setTcpNoDelay, setTcpQuickAck, setTrafficClass, setTrafficShapingOptions, setUseAlpn, setWriteIdleTimeout
-
Methods inherited from class io.vertx.core.net.TCPSSLOptions
getCrlPaths, getCrlValues, getEnabledCipherSuites, getEnabledSecureTransportProtocols, getIdleTimeout, getIdleTimeoutUnit, getKeyCertOptions, getReadIdleTimeout, getSoLinger, getSslEngineOptions, getSslHandshakeTimeout, getSslHandshakeTimeoutUnit, getTcpUserTimeout, getTrustOptions, getWriteIdleTimeout, isSsl, isTcpCork, isTcpFastOpen, isTcpKeepAlive, isTcpNoDelay, isTcpQuickAck, isUseAlpn, setTcpUserTimeout
-
Methods inherited from class io.vertx.core.net.NetworkOptions
getActivityLogDataFormat, getLogActivity, getReceiveBufferSize, getSendBufferSize, getTrafficClass, isReuseAddress, isReusePort
-
-
-
-
Field Detail
-
DEFAULT_PORT
public static final int DEFAULT_PORT
- See Also:
- Constant Field Values
-
DEFAULT_TLS_PORT
public static final int DEFAULT_TLS_PORT
- See Also:
- Constant Field Values
-
DEFAULT_MAX_MESSAGE_SIZE
public static final int DEFAULT_MAX_MESSAGE_SIZE
- See Also:
- Constant Field Values
-
DEFAULT_AUTO_CLIENT_ID
public static final boolean DEFAULT_AUTO_CLIENT_ID
- See Also:
- Constant Field Values
-
DEFAULT_MAX_CLIENT_ID_LENGTH
public static final int DEFAULT_MAX_CLIENT_ID_LENGTH
- See Also:
- Constant Field Values
-
DEFAULT_TIMEOUT_ON_CONNECT
public static final int DEFAULT_TIMEOUT_ON_CONNECT
- See Also:
- Constant Field Values
-
DEFAULT_USE_WEB_SOCKET
public static final boolean DEFAULT_USE_WEB_SOCKET
- See Also:
- Constant Field Values
-
DEFAULT_WEB_SOCKET_MAX_FRAME_SIZE
public static final int DEFAULT_WEB_SOCKET_MAX_FRAME_SIZE
- See Also:
- Constant Field Values
-
DEFAULT_PER_FRAME_WEBSOCKET_COMPRESSION_SUPPORTED
public static final boolean DEFAULT_PER_FRAME_WEBSOCKET_COMPRESSION_SUPPORTED
- See Also:
- Constant Field Values
-
DEFAULT_PER_MESSAGE_WEBSOCKET_COMPRESSION_SUPPORTED
public static final boolean DEFAULT_PER_MESSAGE_WEBSOCKET_COMPRESSION_SUPPORTED
- See Also:
- Constant Field Values
-
DEFAULT_WEBSOCKET_COMPRESSION_LEVEL
public static final int DEFAULT_WEBSOCKET_COMPRESSION_LEVEL
- See Also:
- Constant Field Values
-
DEFAULT_WEBSOCKET_ALLOW_SERVER_NO_CONTEXT
public static final boolean DEFAULT_WEBSOCKET_ALLOW_SERVER_NO_CONTEXT
- See Also:
- Constant Field Values
-
DEFAULT_WEBSOCKET_PREFERRED_CLIENT_NO_CONTEXT
public static final boolean DEFAULT_WEBSOCKET_PREFERRED_CLIENT_NO_CONTEXT
- See Also:
- Constant Field Values
-
MQTT_SUBPROTOCOL_CSV_LIST
public static final String MQTT_SUBPROTOCOL_CSV_LIST
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MqttServerOptions
public MqttServerOptions()
Default constructor
-
MqttServerOptions
public MqttServerOptions(JsonObject json)
Create an options from JSON- Parameters:
json- the JSON
-
MqttServerOptions
public MqttServerOptions(MqttServerOptions other)
Copy constructor- Parameters:
other- the options to copy
-
-
Method Detail
-
setPort
public MqttServerOptions setPort(int port)
Description copied from class:NetServerOptionsSet the port- Overrides:
setPortin classNetServerOptions- Parameters:
port- the port- Returns:
- a reference to this, so the API can be used fluently
-
setHost
public MqttServerOptions setHost(String host)
Description copied from class:NetServerOptionsSet the host- Overrides:
setHostin classNetServerOptions- Parameters:
host- the host- Returns:
- a reference to this, so the API can be used fluently
-
setClientAuth
public MqttServerOptions setClientAuth(ClientAuth clientAuth)
Description copied from class:NetServerOptionsSet whether client auth is required- Overrides:
setClientAuthin classNetServerOptions- 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
-
setSsl
public MqttServerOptions setSsl(boolean ssl)
Description copied from class:TCPSSLOptionsSet whether SSL/TLS is enabled- Overrides:
setSslin classNetServerOptions- Parameters:
ssl- true if enabled- Returns:
- a reference to this, so the API can be used fluently
-
setKeyCertOptions
public MqttServerOptions setKeyCertOptions(KeyCertOptions options)
Description copied from class:TCPSSLOptionsSet the key/cert options.- Overrides:
setKeyCertOptionsin classNetServerOptions- Parameters:
options- the key store options- Returns:
- a reference to this, so the API can be used fluently
-
setTrustOptions
public MqttServerOptions setTrustOptions(TrustOptions options)
Description copied from class:TCPSSLOptionsSet the trust options.- Overrides:
setTrustOptionsin classNetServerOptions- Parameters:
options- the trust options- Returns:
- a reference to this, so the API can be used fluently
-
addEnabledCipherSuite
public MqttServerOptions addEnabledCipherSuite(String suite)
Description copied from class:TCPSSLOptionsAdd an enabled cipher suite, appended to the ordered suites.- Overrides:
addEnabledCipherSuitein classNetServerOptions- Parameters:
suite- the suite- Returns:
- a reference to this, so the API can be used fluently
- See Also:
TCPSSLOptions.getEnabledCipherSuites()
-
addEnabledSecureTransportProtocol
public MqttServerOptions addEnabledSecureTransportProtocol(String protocol)
Description copied from class:TCPSSLOptionsAdd an enabled SSL/TLS protocols, appended to the ordered protocols.- Overrides:
addEnabledSecureTransportProtocolin classNetServerOptions- Parameters:
protocol- the SSL/TLS protocol to enable- Returns:
- a reference to this, so the API can be used fluently
-
addCrlPath
public MqttServerOptions addCrlPath(String crlPath) throws NullPointerException
Description copied from class:TCPSSLOptionsAdd a CRL path- Overrides:
addCrlPathin classNetServerOptions- Parameters:
crlPath- the path- Returns:
- a reference to this, so the API can be used fluently
- Throws:
NullPointerException
-
addCrlValue
public MqttServerOptions addCrlValue(Buffer crlValue) throws NullPointerException
Description copied from class:TCPSSLOptionsAdd a CRL value- Overrides:
addCrlValuein classNetServerOptions- Parameters:
crlValue- the value- Returns:
- a reference to this, so the API can be used fluently
- Throws:
NullPointerException
-
setReceiveBufferSize
public MqttServerOptions setReceiveBufferSize(int receiveBufferSize)
Description copied from class:NetworkOptionsSet the TCP receive buffer size- Overrides:
setReceiveBufferSizein classNetServerOptions- Parameters:
receiveBufferSize- the buffers size, in bytes- Returns:
- a reference to this, so the API can be used fluently
-
setSni
public MqttServerOptions setSni(boolean sni)
Description copied from class:NetServerOptionsSet whether the server supports Server Name Indiciation- Overrides:
setSniin classNetServerOptions- Returns:
- a reference to this, so the API can be used fluently
-
setMaxMessageSize
public MqttServerOptions setMaxMessageSize(int maxMessageSize)
Set max MQTT message size- Parameters:
maxMessageSize- max MQTT message size (variable header + payload)- Returns:
- MQTT server options instance
-
getMaxMessageSize
public int getMaxMessageSize()
- Returns:
- max MQTT message size (variable header + payload)
-
setAutoClientId
public MqttServerOptions setAutoClientId(boolean isAutoClientId)
Set if clientid should be auto-generated when it's "zero-bytes"- Parameters:
isAutoClientId-- Returns:
- MQTT server options instance
-
isAutoClientId
public boolean isAutoClientId()
- Returns:
- if clientid should be auto-generated when it's "zero-bytes" (default is true)
-
getMaxClientIdLength
public int getMaxClientIdLength()
- Returns:
- the max client id length
-
setMaxClientIdLength
public MqttServerOptions setMaxClientIdLength(int maxClientIdLength)
Set the max client id length.- Parameters:
maxClientIdLength- the new value- Returns:
- MQTT server options instance
-
setTimeoutOnConnect
public MqttServerOptions setTimeoutOnConnect(int timeoutOnConnect)
Set the timeout on CONNECT packet- Parameters:
timeoutOnConnect- timeout on CONNECT before closing connection- Returns:
- MQTT server options instance
-
setUseProxyProtocol
public MqttServerOptions setUseProxyProtocol(boolean useProxyProtocol)
Description copied from class:NetServerOptionsSet whether the server uses the HA Proxy protocol- Overrides:
setUseProxyProtocolin classNetServerOptions- Returns:
- a reference to this, so the API can be used fluently
-
isUseProxyProtocol
public boolean isUseProxyProtocol()
- Overrides:
isUseProxyProtocolin classNetServerOptions- Returns:
- whether the server uses the HA Proxy protocol
-
getProxyProtocolTimeout
public long getProxyProtocolTimeout()
- Overrides:
getProxyProtocolTimeoutin classNetServerOptions- Returns:
- the Proxy protocol timeout, in time unit specified by
NetServerOptions.getProxyProtocolTimeoutUnit().
-
setProxyProtocolTimeout
public MqttServerOptions setProxyProtocolTimeout(long proxyProtocolTimeout)
Description copied from class:NetServerOptionsSet the Proxy protocol timeout, default time unit is seconds.- Overrides:
setProxyProtocolTimeoutin classNetServerOptions- Parameters:
proxyProtocolTimeout- the Proxy protocol timeout to set- Returns:
- a reference to this, so the API can be used fluently
-
setProxyProtocolTimeoutUnit
public MqttServerOptions setProxyProtocolTimeoutUnit(TimeUnit proxyProtocolTimeoutUnit)
Description copied from class:NetServerOptionsSet the Proxy protocol timeout unit. If not specified, default is seconds.- Overrides:
setProxyProtocolTimeoutUnitin classNetServerOptions- Parameters:
proxyProtocolTimeoutUnit- specify time unit.- Returns:
- a reference to this, so the API can be used fluently
-
getProxyProtocolTimeoutUnit
public TimeUnit getProxyProtocolTimeoutUnit()
- Overrides:
getProxyProtocolTimeoutUnitin classNetServerOptions- Returns:
- the Proxy protocol timeout unit.
-
timeoutOnConnect
public int timeoutOnConnect()
- Returns:
- timeout on CONNECT before closing connection
-
setUseWebSocket
public MqttServerOptions setUseWebSocket(boolean useWebSocket)
enable mqtt over websocket- Parameters:
useWebSocket- use mqtt over websocket- Returns:
- MQTT server options instance
-
isUseWebSocket
public boolean isUseWebSocket()
- Returns:
- use mqtt over websocket
-
getWebSocketMaxFrameSize
public int getWebSocketMaxFrameSize()
- Returns:
- the WebSocket max frame size
-
setWebSocketMaxFrameSize
public void setWebSocketMaxFrameSize(int webSocketMaxFrameSize)
Set the WebSocket max frame size.This should be used when WebSocket transport is used and
maxMessageSizeis larger than the WebSocket frame size- Parameters:
webSocketMaxFrameSize- the new frame size
-
isPerFrameWebSocketCompressionSupported
public boolean isPerFrameWebSocketCompressionSupported()
Get whether WebSocket the per-frame deflate compression extension is supported.- Returns:
trueif the http server will accept the per-frame deflate compression extension
-
setPerFrameWebSocketCompressionSupported
public MqttServerOptions setPerFrameWebSocketCompressionSupported(boolean supported)
Enable or disable support for the WebSocket per-frame deflate compression extension.- Parameters:
supported-truewhen the per-frame deflate compression extension is supported- Returns:
- a reference to this, so the API can be used fluently
-
isPerMessageWebSocketCompressionSupported
public boolean isPerMessageWebSocketCompressionSupported()
Get whether WebSocket the per-frame deflate compression extension is supported.- Returns:
trueif the http server will accept the per-frame deflate compression extension
-
setPerMessageWebSocketCompressionSupported
public MqttServerOptions setPerMessageWebSocketCompressionSupported(boolean supported)
Enable or disable support for WebSocket per-message deflate compression extension.- Parameters:
supported-truewhen the per-message WebSocket compression extension is supported- Returns:
- a reference to this, so the API can be used fluently
-
getWebSocketCompressionLevel
public int getWebSocketCompressionLevel()
- Returns:
- the current WebSocket deflate compression level
-
setWebSocketCompressionLevel
public MqttServerOptions setWebSocketCompressionLevel(int compressionLevel)
Set the WebSocket compression level.- Parameters:
compressionLevel- the compression level- Returns:
- a reference to this, so the API can be used fluently
-
isWebSocketAllowServerNoContext
public boolean isWebSocketAllowServerNoContext()
- Returns:
truewhen the WebSocket server will accept theserver_no_context_takeoverparameter for the per-message deflate compression extension offered by the client
-
setWebSocketAllowServerNoContext
public MqttServerOptions setWebSocketAllowServerNoContext(boolean accept)
Set whether the WebSocket server will accept theserver_no_context_takeoverparameter of the per-message deflate compression extension offered by the client.- Parameters:
accept-trueto accept the server_no_context_takeover parameter when the client offers it- Returns:
- a reference to this, so the API can be used fluently
-
isWebSocketPreferredClientNoContext
public boolean isWebSocketPreferredClientNoContext()
- Returns:
truewhen the WebSocket server will accept theclient_no_context_takeoverparameter for the per-message deflate compression extension offered by the client
-
setWebSocketPreferredClientNoContext
public MqttServerOptions setWebSocketPreferredClientNoContext(boolean accept)
Set whether the WebSocket server will accept theclient_no_context_takeoverparameter of the per-message deflate compression extension offered by the client.- Parameters:
accept-trueto accept theclient_no_context_takeoverparameter when the client offers it- Returns:
- a reference to this, so the API can be used fluently
-
toJson
public JsonObject toJson()
Description copied from class:NetServerOptionsConvert to JSON- Overrides:
toJsonin classNetServerOptions- Returns:
- the JSON
-
-