Which project is your question related to?
Describe your question
While upgrading my MQTT broker implementation to MQTT 5, I found ambiguity in the MQTTnet Server regarding how it handles two CONNECT properties:
- Request Response Information (0x19)
- Request Problem Information (0x17)
The MQTT 5 specification defines clear rules for these fields, but it is not clear whether MQTTnet automatically enforces these requirements or whether broker developers must implement additional logic manually.
WHY?
- Request Response Information
According to the spec:
If the client sets this to 0 → Server MUST NOT include Response Information in CONNACK.
If the client sets it to 1 → Server MAY include Response Information, but it is optional.
My question:
I could not determine whether MQTTnet has built-in logic for populating or omitting this field, or whether it is entirely the broker developer's responsibility.
- Request Problem Information
Spec states:
Default value = 1 (if absent).
If the client sets it to 0:
Server may include Reason String or User Properties only in PUBLISH, CONNACK, or DISCONNECT.
Server must not include them in any other packet types.
My question:
Does MQTTnet enforce these restrictions automatically?
Or should the broker developer ensure that Reason Strings / User Properties are not included in packets where the spec forbids them?
Which project is your question related to?
Describe your question
While upgrading my MQTT broker implementation to MQTT 5, I found ambiguity in the MQTTnet Server regarding how it handles two CONNECT properties:
The MQTT 5 specification defines clear rules for these fields, but it is not clear whether MQTTnet automatically enforces these requirements or whether broker developers must implement additional logic manually.
WHY?
According to the spec:
My question:
I could not determine whether MQTTnet has built-in logic for populating or omitting this field, or whether it is entirely the broker developer's responsibility.
Spec states:
My question:
Does MQTTnet enforce these restrictions automatically?
Or should the broker developer ensure that Reason Strings / User Properties are not included in packets where the spec forbids them?