I've been trying to find out the flow of the QoS 1, but it's hard.
As I understood, when a publisher sends some packets with QoS1, it must wait for the PUB ACK packet.
I thought when a broker got a PUB packet, it needed to send this to all the subscriber.
Then, the broker also became publisher.
So the broker send this PUB packet to all subscribers
and the broker also waited for the PUB ACK packets from all of the subscribers.
When the broker received all of the PUB ACK packet, then send PUB ACK packet to the original publisher(client).
Am I right?
(There was a description with the flow between a publisher and the Broker but not for between Broker and subscribers)
QoS is only ever between one client and the broker at a time, there is no end to end (publisher to subscriber) delivery notification.
It is perfectly possible to publish a message at QoS 1 but only have subscribers at QoS 0. You can also have multiple subscribers each with different QoS subscriptions, some at QoS 0, some at QoS 1 and finally some at QoS 2.
The QoS exchange between the publisher and the broker should complete before it starts to deliver that message onward to the subscribers.