110.4. 组件选项


Paho MQTT 5 组件支持 32 个选项,如下所列。

Name描述默认值类型

automaticReconnect (common)

设置客户端是否会在连接丢失时自动尝试重新连接到服务器。如果设置为 false,则客户端不会在连接丢失时自动重新连接到服务器。如果设置为 true,如果连接丢失,客户端将尝试重新连接服务器。它初始会在尝试重新连接前等待 1 秒,对于每个失败的尝试,其延长会加倍,指定 2 分钟为止,此时,延迟会一直为 2 分钟。

true

布尔值

brokerUrl (common)

MQTT 代理的 URL。

tcp://localhost:1883

字符串

cleanStart (common)

设置客户端和服务器是否应该在重新启动和重新连接后记住状态。如果设置为 false,则客户端和服务器将在客户端重启后保持状态,则服务器和连接。当状态被维护时:即使客户端、服务器或连接重启,消息交付也会可靠满足指定的 QOS。服务器会将订阅视为持久。如果设置为 true,则客户端和服务器在重启客户端后不会保持状态,则服务器或连接不会保持状态。这意味着,如果客户端、服务器或连接重启了,则向指定 QOS 的消息发送无法维护。服务器会将订阅视为非持久。

true

布尔值

clientId (common)

MQTT 客户端标识符。标识符必须是唯一的。

 

字符串

configuration (common)

使用共享 Paho 配置。

 

PahoMqtt5Configuration

connectionTimeout (common)

设置连接超时值。这个值(以秒为单位)定义客户端等待到 MQTT 服务器的网络连接的最大时间间隔。默认超时为 30 秒。0 代表禁用超时处理,这意味着客户端会等待网络连接成功或失败。

30

int

filePersistenceDirectory (common)

文件持久性使用的基础目录。默认情况下,将使用 user 目录。

 

字符串

keepAliveInterval (common)

设置 keep alive 间隔。这个值(以秒为单位)定义发送或接收的消息之间的最大时间间隔。它可让客户端检测服务器是否不再可用,而无需等待 TCP/IP 超时。客户端将确保至少有一个消息在网络上传输一次,每个消息都保持一段时间内。如果在一段时间内没有与数据相关的消息,客户端会发送非常小的 ping 消息,服务器将确认该消息。0 代表禁用客户端中的 keepalive 处理。默认值为 60 秒。

60

int

maxReconnectDelay (common)

获取在重新连接之间等待的最长时间(在 millis 中)。

128000

int

Persistence (common)

要使用的客户端持久性 - 内存或文件。

Enum 值:

  • FILE
  • 内存

内存

PahoMqtt5Persistence

QoS (common)

客户端服务质量级别(0-2)。

2

int

receiveMaximum (common)

设置 Receive Maximum。这个值代表了客户端同时处理的 QoS 1 和 QoS 2 出版物的限制。没有机制来限制服务器可能尝试发送的 QoS 0 出版物数量。默认值为 65535。

65535

int

reserved (common)

保留选项.

false

布尔值

serverURIs (common)

设置客户端可以连接的一个或多个 serverURI 的列表。可以使用逗号分隔多个服务器。每个 serverURI 指定客户端可以连接的服务器的地址。支持两种类型的连接,tcp:// 用于 TCP 连接,ssl:// 用于由 SSL/TLS 保护的 TCP 连接。例如: 未指定端口 tcp://localhost:8883,它将默认为 tcp:// URIs 的 1883,以及 ssl:// URI 的 8883。如果设置了 serverURIs,它会覆盖在 MQTT 客户端的构造器中传递的 serverURI 参数。当尝试连接时,客户端将从列表中的第一个 serverURI 开始,并完成列表,直到与服务器建立连接为止。如果无法连接任何服务器,则连接尝试会失败。指定客户端可以连接的服务器列表有几种用途:高可用性和可靠的消息交付部分 MQTT 服务器支持高可用性功能,其中两个或更多 MQTT 服务器共享状态。MQTT 客户端可以连接到任何相等的服务器,并保证消息被可靠地交付,无论客户端连接到哪个服务器,均会保持持久订阅。如果需要持久订阅和/或可靠消息发送,则 cleansession 标志必须设置为 false。hunt List 可以指定一组不相等的服务器(与高可用性选项相同)。因为服务器间没有状态共享可靠消息交付,因此持久订阅无效。如果使用 hunt 列表模式,则必须将 cleansession 标志设为 true。

 

字符串

sessionExpiryInterval (common)

设置会话过期间隔。这个值(以秒为单位)定义代理在客户端断开连接后保持会话的最长时间。如果客户端计划稍后连接到服务器,则客户端应只使用较长的会话过期间隔连接。默认情况下,这个值为 -1,因此不会发送,在这种情况下,会话不会过期。如果发送了一个 0,则会话会在网络连接关闭后立即结束。当客户端确定不再用于会话时,它应该断开与 Session Expiry Interval 设为 0。

-1

long

willMqttProperties (common)

为连接设置最后 Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布消息。为消息设置的 MQTT 属性。

 

MqttProperties

willPayload (common)

为连接设置最后 Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布消息。消息的字节有效负载。

 

字符串

willQos (common)

为连接设置最后 Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布消息。要发布消息的服务质量(0、1 或 2)。

1

int

willRetained (common)

为连接设置最后 Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布消息。是否应保留消息。

false

布尔值

willTopic (common)

为连接设置最后 Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布消息。要发布到的主题。

 

字符串

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。

false

布尔值

lazyStartProducer (producer)

生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 CamelContext 和路由在生成者启动期间启动,并导致路由启动失败。通过懒惰启动,启动失败可以在路由信息时通过 Camel 的路由错误处理程序进行处理。请注意,在处理第一个消息时,创建并启动生成者可能需要稍等时间,并延长处理的总处理时间。

false

布尔值

autowiredEnabled (advanced)

是否启用自动关闭。这用于自动关闭选项(选项必须标记为 autowired),方法是在 registry 中查找查找是否有单个匹配类型实例,然后在组件上配置。这可以用于自动配置 JDBC 数据源、JMS 连接工厂、AWS 客户端等。

true

布尔值

客户端 (advanced)

使用共享的 Paho 客户端。

 

MqttClient

customWebSocketHeaders (advanced)

为 WebSocket Connection 设置自定义 WebSocket 标头。

 

Map

executorServiceTimeout (advanced)

设置 executor 服务在强制终止前终止时应等待的时间(以秒为单位)。除非绝对需要,否则不建议更改这个值。

1

int

httpsHostnameVerificationEnabled (security)

是否启用 SSL HostnameVerifier。默认值为 true。

true

布尔值

密码 (security)

用于对 MQTT 代理进行身份验证的密码。

 

字符串

socketFactory (security)

设置要使用的 SocketFactory。这允许应用程序在创建网络套接字时应用自己的策略。如果使用 SSL 连接,可以使用 SSLSocketFactory 提供特定于应用程序的安全设置。

 

SocketFactory

sslClientProps (security)

为连接设置 SSL 属性。请注意,这些属性只有在有 Java 安全套接字扩展(JSSE)的实现时才有效。如果设置了自定义 SocketFactory,则不会使用这些属性。可以使用以下属性:com.ibm.ssl.protocol One of of: SSL, SSLv3, TLS, TLSv1, SSL_TLS. com.ibm.ssl.contextProvider Underlying JSSE 供应商。例如,IBMJSSE2 或 SunJSSE com.ibm.ssl.keyStore 包括了您要使用 KeyManager 的 KeyStore 对象的名称。例如,/mydir/etc/key.p12 com.ibm.ssl.keyStorePassword 是您希望 KeyManager 使用的 KeyStore 对象的密码。密码可以是纯文本,也可以使用静态方法模糊处理:com.ibm.micro.security.Password.obfuscate (char password)。这将使用简单、不安全的 XOR 和 Base64 编码机制来模糊处理密码。请注意,这只是模糊处理明文密码的简单 scrambler。com.ibm.ssl.keyStoreType Type of key store,如 PKCS12, JKS, 或 JCEKS. com.ibm.ssl.keyStoreProvider Key store provider,如 IBMJCE 或 IBMJCEFIPS. com.ibm.ssl.trustStore 包含您希望 TrustManager 使用的 KeyStore 对象的文件名称。com.ibm.ssl.trustStorePassword 是您希望 TrustManager 使用的 TrustStore 对象的密码。密码可以是纯文本,也可以使用静态方法模糊处理:com.ibm.micro.security.Password.obfuscate (char password)。这将使用简单、不安全的 XOR 和 Base64 编码机制来模糊处理密码。请注意,这只是一个简单的 scrambler,用于模糊处理明文密码。com.ibm.ssl.trustStoreType 是您希望默认 TrustManager 使用的 KeyStore 对象的类型。与 keyStoreType. com.ibm.ssl.trustStoreProvider Trust store provider 相同,如 IBMJCE 或 IBMJCEFIPS. com.ibm.ssl.enabledCipherSuites A 列表启用了哪些密码。值取决于提供程序,例如:SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA. com.ibm.ssl.keyManager 设置用于实例化 KeyManagerFactory 对象的算法,而不是使用平台中提供的默认算法。示例值: IbmX509 或 IBMJ9X509. com.ibm.ssl.trustManager 设置算法,该算法将用于实例化 TrustManagerFactory 对象,而不是使用平台中可用的默认算法。示例值:PKIX 或 IBMJ9X509.

 

Properties

sslHostnameVerifier (security)

为 SSL 连接设置 HostnameVerifier。请注意,它将在连接上的握手后使用,您应该在主机名验证错误时自行执行操作。没有默认 HostnameVerifier。

 

HostnameVerifier

用户名 (security)

用于对 MQTT 代理进行身份验证的用户名。

 

字符串

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.