public function accept(Packet $packet) { if ($this->message->getQosLevel() !== 2 || $packet->getPacketType() !== Packet::TYPE_PUBREL) { return false; } /* @var PublishReleasePacket $packet */ return $packet->getIdentifier() === $this->identifier; }
public function accept(Packet $packet) { if ($this->message->getQosLevel() === 0) { return false; } $packetType = $packet->getPacketType(); if ($packetType === Packet::TYPE_PUBACK && $this->message->getQosLevel() === 1) { /* @var PublishAckPacket $packet */ return $packet->getIdentifier() === $this->identifier; } elseif ($this->message->getQosLevel() === 2) { if ($packetType === Packet::TYPE_PUBREC) { /* @var PublishReceivedPacket $packet */ return $packet->getIdentifier() === $this->identifier; } elseif ($this->receivedPubRec && $packetType === Packet::TYPE_PUBCOMP) { /* @var PublishCompletePacket $packet */ return $packet->getIdentifier() === $this->identifier; } } return false; }