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 : "" }; } 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));