Число bdSeq и число seq используются по-разному и не должны иметь одну и ту же переменную.
Номер seq должен быть частью каждого сообщения DBIRTH / NBIRTH / DDATA / NDATA / DDEATH. Он используется для обеспечения доставки сообщений по порядку любому потребителю данных.
bdSeq используется для отслеживания общего сеанса клиента Sparkplug. Это число является специальной метрикой, которая присутствует только в сообщениях NBIRTH / NDEATH. Он используется для сопоставления NDEATH (опубликованного сервером MQTT от имени отключенного клиента Sparkplug) с ранее опубликованным сообщением NBIRTH. Потребители данных используют NDEATH, чтобы знать, что клиент Sparkplug находится в автономном режиме. Причина, по которой это необходимо, заключается в том, что клиент Sparkplug может потерять соединение, переподключиться и опубликовать новый NBIRTH, прежде чем сервер MQTT опубликует NDEATH из предыдущего сеанса. В этом случае новый NBIRTH будет содержать новый номер bdSeq , и любые последующие сообщения NDEATH со старыми номерами bdSeq могут игнорироваться.