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