クライアントから送信されたメッセージをローカルDBに永続化するMQTTサーバーをセットアップしようとしています。各メッセージには「正常に受信されました」フラグがあり、受信クライアントが受信したメッセージ(QOS = 1)ごとにpubackを返すときに反転します。
質問は:
メッセージを公開すると、サーバーは受信側クライアントからpubackを正しく受信します。ただし、messageIdは、公開クライアントのパケットからのものと同じではありません。私はこれが意図されていることを知っています。しかし、そうすると、フラグを反転するための適切なメッセージをDBで見つけることができなくなります。クライアントAがQOS=1の2つのメッセージをクライアントBに連続して送信した場合はどうなりますか?サーバーは、戻ってくる2つのpubackをどのように区別しますか?
たぶん、MQTTクライアントは私が見逃しているmessageIdsをマッピングするために何か魔法のようなことをしていますか?
私はmqttjsとpahomqttv3btwを使用しています。