/** * Read a single packet from the gearman server. * * Blocks if no packet is available * * @returns Packet */ public function readPacket() { if (!$this->stream) { $this->connect(); } $header = $this->read(12); $size = substr($header, 8, 4); $size = Packet::fromBigEndian($size); $arguments = $size > 0 ? $this->read($size) : ''; return Packet::fromString($header . $arguments); }