HiveMQ MQTT Client is an MQTT 5.0 and MQTT 3.1.1 compatible and feature-rich high-performance Java client library with different API flavours and backpressure support
Full Changelog: https://github.com/hivemq/hivemq-mqtt-client/compare/v1.3.2...v1.3.3
Full Changelog: https://github.com/hivemq/hivemq-mqtt-client/compare/v1.3.1...v1.3.2
Full Changelog: https://github.com/hivemq/hivemq-mqtt-client/compare/v1.3.0...v1.3.1
Related blog post: https://www.hivemq.com/blog/hivemq-mqtt-client-1-3-0-released/
Related blog post: https://www.hivemq.com/blog/hivemq-mqtt-client-1-2-2-released/
subList
operation on returned immutable lists #417Related blog post:
Manual message acknowledgement #304 #403 Use case: Ensure at least once delivery from the broker even if client applications crash
New Reactor API #255 #388 #397 Use case: Easier integration into reactor applications
Decoupled subscription/publishing lifecycles from connection/session lifecycles
Subscribe and unsubscribe operations can now be called irrespective of the current connection status (similar to the publishes operation) #398 Use case: Set up subscriptions before connecting the client
Restore subscriptions automatically if the session expires and the client reconnects (enabled by default, configurable) #297 #398 Use case: Easier to build continuously-connected applications that need to maintain their subscriptions as long as the application is running (even in the edge case that the session expires)
Republish pending and queued messages even if the session expires and the client reconnects (disabled by default, configurable) #288 #398 Use case: Easier to build continuously-connected applications that want to ensure at-least-once delivery to the broker (even in the edge case that the session expires)
New transport features:
Proxy support: SOCKS4, SOCKS5, HTTP CONNECT #81 #281 #364 #401 Use case: Tunnel the MQTT connection through a proxy
Improved TLS support: #201 #401
Specify a WebSocket query string #335 #336 Usecase: Communicate with WebSocket endpoints that require a query string
Specify the local bind address and/or port #308 #365 Use case: Support multiple network interfaces
Configurable timeouts: #401
New bulk builder methods for consuming arrays, collections, or streams: #170 #290 #387
addAll
addSubscriptions
addTopicFilters
CheckReturnValue
annotation that enables IDE assistance to flag unused return values #385hivemq-mqtt-client
: Base dependencyhivemq-mqtt-client-websocket
: Adds dependencies for the WebSocket transporthivemq-mqtt-client-proxy
: Adds dependencies for the proxy transporthivemq-mqtt-client-epoll
: Adds dependencies for the native epoll socket implementationhivemq-mqtt-client-reactor
: Reactor API for the HiveMQ MQTT ClientBy default, subscriptions are now automatically restored when the session expires and the client reconnects.
If desired, the default behavior can be disabled with MqttClientReconnector.resubscribeIfSessionExpired(false)
When TLS is used, HTTPS hostname verification is now performed by default, but can be customized with MqttClientSslConfigBuilder.hostnameVerifier
The hivemq-mqtt-client
artifact in version 1.1.4 and below is now modularized into the artifacts hivemq-mqtt-client
, hivemq-mqtt-client-websocket
, and hivemq-mqtt-client-epoll
If you use the WebSocket transport or the native epoll socket implementation, please specify the additional dependencies
Related blog post: https://www.hivemq.com/blog/hivemq-mqtt-client-1-2-0-released/
TopicAliasAutoMapping
for better utilization of topic aliases #370Mqtt5ConnAck
with reason code UNSUPPORTED_PROTOCOL_VERSION
instead of an MqttDecodeException
#327Related blog post: https://www.hivemq.com/blog/hivemq-mqtt-client-1-1-4-released/
com.hivemq.client.mqtt
#330netty-transport-native-epoll
is now optional and can be excluded if not needed #330Related blog post: https://www.hivemq.com/blog/hivemq-mqtt-client-1-1-3-released/
Mqtt5Exception
s anymore but Mqtt3Exception
s #316CompletableFuture
are not wrapped in CompletionException
anymore consistently #320Related blog post: https://www.hivemq.com/blog/hivemq-mqtt-client-1-1-2-released/