From 3b97d3aeab0ec17841ed46e2901f0c8654d160ac Mon Sep 17 00:00:00 2001 From: Bret Ambrose Date: Mon, 19 Feb 2024 10:27:54 -0800 Subject: [PATCH 1/2] Let mqtt.js auto-assign a client id rather than passing an empty client id and hanging the client when clean session is false --- lib/browser/mqtt5_utils.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/browser/mqtt5_utils.ts b/lib/browser/mqtt5_utils.ts index 6470acab7..ebc8151f5 100644 --- a/lib/browser/mqtt5_utils.ts +++ b/lib/browser/mqtt5_utils.ts @@ -226,10 +226,10 @@ export function create_mqtt_js_client_config_from_crt_client_config(crtConfig : } /* - * If you leave clientId undefined, mqtt-js will make up some weird thing for you, but the intent is that it - * should pass the empty client id so that the server assigns you one. + * MQTT.js treats an undefined client id specially, and we want it to do so, otherwise it will refuse + * to connect with clean session false */ - utils.set_defined_property(mqttJsClientConfig, "clientId", crtConfig.connectProperties?.clientId ?? ""); + utils.set_defined_property(mqttJsClientConfig, "clientId", crtConfig.connectProperties?.clientId); utils.set_defined_property(mqttJsClientConfig, "username", crtConfig.connectProperties?.username); utils.set_defined_property(mqttJsClientConfig, "password", crtConfig.connectProperties?.password); utils.set_defined_property(mqttJsClientConfig, "will", create_mqtt_js_will_from_crt_config(crtConfig.connectProperties)); From 26b6fb172c35d2e60ae35cce550b7e7e834c3fee Mon Sep 17 00:00:00 2001 From: Bret Ambrose Date: Mon, 19 Feb 2024 10:47:20 -0800 Subject: [PATCH 2/2] Update config test to expect undefined client id --- lib/browser/mqtt5_utils.spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/browser/mqtt5_utils.spec.ts b/lib/browser/mqtt5_utils.spec.ts index 56d5c6d13..d0545da69 100644 --- a/lib/browser/mqtt5_utils.spec.ts +++ b/lib/browser/mqtt5_utils.spec.ts @@ -353,7 +353,6 @@ function create_base_expected_mqtt_js_config() : mqtt.IClientOptions { autoAssignTopicAlias : false, transformWsUrl: undefined, /* TOFIX */ resubscribe : false, - clientId : "" }; }