Uploaded image for project: 'OASIS Message Queuing Telemetry Transport (MQTT) TC'
  1. OASIS Message Queuing Telemetry Transport (MQTT) TC
  2. MQTT-271

Describing small device limitations, aka "the Arduino problem"

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 5
    • Fix Version/s: None
    • Component/s: futures
    • Labels:
      None
    • Environment:

      Very small device implementations.

    • Proposal:
      Hide

      The capabilities of a device should be described in the connect packet. The server should limit the messages it sends to the device accordingly. It is an administrative task on the server to determine what action should be taken in the event that this results in a message not being able to be sent to the device. Device capabilities which should be described are:

      1. Maximum MQTT packet size that can be handled.
      2. Maximum publish payload size that can be handled. (This may be an alternative to 1, rather than an addition).
      3. Maximum number of inflight incoming QoS 1 and 2 messages that can be handled. Each inflight message needs storage to hold it, hence the need to limit the number of them.

      Show
      The capabilities of a device should be described in the connect packet. The server should limit the messages it sends to the device accordingly. It is an administrative task on the server to determine what action should be taken in the event that this results in a message not being able to be sent to the device. Device capabilities which should be described are: 1. Maximum MQTT packet size that can be handled. 2. Maximum publish payload size that can be handled. (This may be an alternative to 1, rather than an addition). 3. Maximum number of inflight incoming QoS 1 and 2 messages that can be handled. Each inflight message needs storage to hold it, hence the need to limit the number of them.

      Description

      Small devices, like the original Arduino, may have very limited resource, like 16k of RAM, or less. For such devices, limiting the storage used by MQTT is very important.

      They may not even be able to process a message of 30k, for instance, at all. If it were sent at QoS 1 or 2, it has to be read in before subsequent messages are received.

      At the moment, it is a server admin task, or application design task, to make sure that messages bigger than a device can handle are not sent to it.

        Attachments

          Activity

            People

            • Assignee:
              icraggs Ian Craggs
              Reporter:
              icraggs Ian Craggs
            • Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: