Практическая реализация MQTT messageId

Компания, в которой я работаю, оценила MQTT и решила использовать его в качестве основной платформы обмена сообщениями для крупномасштабной системы. Основная причина заключается в том, насколько компактен протокол и насколько легко его реализовать. Однако у меня есть одна проблема с MQTT, и я ищу ответ на следующий вопрос:

Сообщения QoS1 и QoS2 требуют подтверждения от клиента. Единственное, что я знаю о сообщении (идентифицируя его) при получении PUBACK, PUBREC, PUBREL и PUBCOMP, это messageId и clientId. Идентификатор сообщения представляет собой беззнаковое целое число 16, поэтому максимальное значение равно 65535. Этого недостаточно для долго работающих клиентов, скажем, в год, отправляющих 15 сообщений QoS2 в час.

Я не совсем уверен, есть ли другой способ идентифицировать сообщение? Я хотел бы максимально соответствовать стандарту.

10
задан 20 June 2012 в 08:12
поделиться