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 值:
| 内存 | 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 代理进行身份验证的用户名。 | 字符串 |