/** * Output heartbeat loop */ public function outputHeartbeatLoop() { while ($this->isOpen()) { (yield Awaitable\resolve()->delay($this->heartbeat)); if (!$this->something_sent_between_heartbeat_checks) { $pkt = new AMQPBufferWriter(); $pkt->write_octet(FrameTypes::HEARTBEAT); $pkt->write_short(0); $pkt->write_long(0); $pkt->write_octet(Constants091::FRAME_END); (yield $this->client->write($pkt->getvalue())); } else { $this->something_sent_between_heartbeat_checks = false; } } }
/** * @return array */ public function basicQos($prefetch_size = 0, $prefetch_count = 0, $global = false) { $args = new AMQPBufferWriter(); $args->write_long($prefetch_size); $args->write_short($prefetch_count); $args->write_bits(array($global)); return [ClassTypes::BASIC, BasicMethods::QOS, $args->getvalue()]; }