-
Type:
Improvement
-
Status:
Closed
-
Priority:
Minor
-
Resolution:
Fixed
-
Affects Version/s:
3.1.1
-
-
-
-
-
Proposal:
Hide
Non-normative:
A client implementation may provide a convenience method to generate a random Client Identifier. Use of such a method should be actively discouraged when the Clean Session flag is set to 0.
Show
Non-normative:
A client implementation may provide a convenience method to generate a random Client Identifier. Use of such a method should be actively discouraged when the Clean Session flag is set to 0.
Opened on behalf of Roger Light:-
Hi,
A lot of MQTT client libraries offer the feature of generating random
client ids rather than having to supply one. This is good.
I recently had over 10,000 client connections made to
test.mosquitto.org using a random client id, but also having set clean
session to false, which meant that when they disconnected their
information was stored on the server but there was basically no chance
they could reconnect.
It would be nice to have a comment in the spec suggesting that
implementations may offer to generate random client ids but that they
must refuse to do so if clean session is set to false.
Cheers,
Roger
{"report":{"apdex":0.5,"isInitial":true,"journeyId":"806c90f1-efa3-4594-bfde-e51427b360fc","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":1371.9000000953674,"redirectCount":0,"resourceLoadedEnd":1516.5,"resourceLoadedStart":446.5,"resourceTiming":[{"duration":523.6999998092651,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":446.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":446.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":970.1999998092651,"responseStart":0,"secureConnectionStart":0},{"duration":523.7000002861023,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":446.7999997138977,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":446.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":970.5,"responseStart":0,"secureConnectionStart":0},{"duration":523.5999999046326,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":447.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":447.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":970.6999998092651,"responseStart":0,"secureConnectionStart":0},{"duration":523.4000000953674,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":447.2999997138977,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":447.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":970.6999998092651,"responseStart":0,"secureConnectionStart":0},{"duration":523.1999998092651,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":447.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":447.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":970.6999998092651,"responseStart":0,"secureConnectionStart":0},{"duration":532,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":447.7999997138977,"connectEnd":447.7999997138977,"connectStart":447.7999997138977,"domainLookupEnd":447.7999997138977,"domainLookupStart":447.7999997138977,"fetchStart":447.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":447.7999997138977,"responseEnd":979.7999997138977,"responseStart":979.7999997138977,"secureConnectionStart":447.7999997138977},{"duration":564.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":448.2999997138977,"connectEnd":448.2999997138977,"connectStart":448.2999997138977,"domainLookupEnd":448.2999997138977,"domainLookupStart":448.2999997138977,"fetchStart":448.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":448.2999997138977,"responseEnd":1012.7999997138977,"responseStart":1012.7999997138977,"secureConnectionStart":448.2999997138977},{"duration":568.3000001907349,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":448.59999990463257,"connectEnd":448.59999990463257,"connectStart":448.59999990463257,"domainLookupEnd":448.59999990463257,"domainLookupStart":448.59999990463257,"fetchStart":448.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":448.59999990463257,"responseEnd":1016.9000000953674,"responseStart":1016.9000000953674,"secureConnectionStart":448.59999990463257},{"duration":569.1000003814697,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":448.7999997138977,"connectEnd":448.7999997138977,"connectStart":448.7999997138977,"domainLookupEnd":448.7999997138977,"domainLookupStart":448.7999997138977,"fetchStart":448.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":448.7999997138977,"responseEnd":1017.9000000953674,"responseStart":1017.9000000953674,"secureConnectionStart":448.7999997138977},{"duration":570.0999999046326,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":449,"connectEnd":449,"connectStart":449,"domainLookupEnd":449,"domainLookupStart":449,"fetchStart":449,"redirectEnd":0,"redirectStart":0,"requestStart":449,"responseEnd":1019.0999999046326,"responseStart":1019.0999999046326,"secureConnectionStart":449},{"duration":570.8000001907349,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":449.19999980926514,"connectEnd":449.19999980926514,"connectStart":449.19999980926514,"domainLookupEnd":449.19999980926514,"domainLookupStart":449.19999980926514,"fetchStart":449.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":449.19999980926514,"responseEnd":1020,"responseStart":1020,"secureConnectionStart":449.19999980926514},{"duration":572.6999998092651,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":449.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":449.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1022.0999999046326,"responseStart":0,"secureConnectionStart":0},{"duration":573.2999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":449.5,"connectEnd":449.5,"connectStart":449.5,"domainLookupEnd":449.5,"domainLookupStart":449.5,"fetchStart":449.5,"redirectEnd":0,"redirectStart":0,"requestStart":449.5,"responseEnd":1022.7999997138977,"responseStart":1022.7999997138977,"secureConnectionStart":449.5},{"duration":550.7000002861023,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":475.2999997138977,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":475.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1026,"responseStart":0,"secureConnectionStart":0},{"duration":550.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":475.5,"connectEnd":475.5,"connectStart":475.5,"domainLookupEnd":475.5,"domainLookupStart":475.5,"fetchStart":475.5,"redirectEnd":0,"redirectStart":0,"requestStart":475.5,"responseEnd":1026,"responseStart":1026,"secureConnectionStart":475.5},{"duration":832.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":485.19999980926514,"connectEnd":485.19999980926514,"connectStart":485.19999980926514,"domainLookupEnd":485.19999980926514,"domainLookupStart":485.19999980926514,"fetchStart":485.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":485.19999980926514,"responseEnd":1317.6999998092651,"responseStart":1317.6999998092651,"secureConnectionStart":485.19999980926514}],"threshold":1000,"fetchStart":0,"domainLookupStart":324,"domainLookupEnd":324,"connectStart":324,"connectEnd":374,"secureConnectionStart":349,"requestStart":374,"responseStart":438,"responseEnd":507,"domLoading":441,"domInteractive":1550,"domContentLoadedEventStart":1550,"domContentLoadedEventEnd":1608,"domComplete":2360,"loadEventStart":2360,"loadEventEnd":2363,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"1b7b33e7eb625a","effectiveType":"4g","downlink":9.9,"rtt":0,"serverDuration":98,"dbReadsTimeInMs":15,"dbConnsTimeInMs":22,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}
I agree with the previous comment. Within the scope of the charter, we're not permitted to introduce an incompatible change, such as a special meaning for a zero-length ClientId on the CONNECT packet. I like that idea, but I think we can only go as far as the previous comment in this version of the specification.