What is your preferred option to resolve MQTT-498 for MQTT v5.0 CSD02 ?
One of the comments received during the MQTTv5.0 CSD01 public review was that there is no way to set properties on the will message. This is the final issue for the MQTT TC to resolve ahead of CSD02.
This was discussed during the TC meeting held on 5th October where the TC narrowly favoured Option A. This outcome fuelled further debate around likely specification and implementation impact. Some of those who voted for options A and B stated option would C be their second choice, while others felt they supported option A as a potentially straightforward solution. Option C was late to the discussion and didn't get a lot of air time. There was a general lack of confidence in the outcome. Issue MQTT-498 was scheduled for the next TC meeting to be held on the 12th October. An overview of the three options was published to the mqtt-commects list on 6th October to provide clarity.
The October 12th TC meeting achieved quorum with 8/15 voting members. In light of the clarifications, and following further discussion, the TC voted to hold an electronic ballot to get input from as many TC voting members as possible to resolve MQTT-498.
There are three options to consider:
Option A
- Add new properties to the CONNECT Packet which apply to the the will message: Publication Expiry Interval, Payload Format Indicator, and Content Type
- Add a new property definition for Will User Properties on the CONNECT Packet to allow User Properties on the will message
Pros: CONNECT payload is the same as v3.1.1
Cons: The two sets of User Properties on CONNECT (one for CONNECT user properties, one for will message user properties)
Option B
- Replace the current WILL Message field in the CONNECT Packet with a full PUBLISH Packet.
- Remove existing CONNECT Flags for Will QoS and Will Retain as well as Will Topic field
- Define the set of limitations on this publish packet (no Topic Alias or Subscription ID, packet ID must be 0).
Pros: Clean specification definition of Will Message as a form of PUBLISH packet
Cons: Large change to specification and possible impact to current implementations
Option C
- Add new field for Will Properties in CONNECT payload before Will Topic
- If Will Flag is set, the Will Properties is required (if there are no properties this is just adding one 0x00 byte)
- Define the exact list of properties supported for Will Properties
Pros: Only a minor change from v3.1.1 and existing v5.0 CONNECT payload
Cons: Adds a properties structure into the CONNECT payload
|