/** * @param Message $message * * @return bool */ public function write(Message $message) { $attempt = 1; $content = $message->getPayload(); $contentLength = strlen($content); try { while ((int) $this->stream->write($content) !== $contentLength && $attempt++ < self::RETRY) { Sleep::millisecond(self::RETRY_INTERVAL); } $success = $attempt < self::RETRY; } catch (\Exception $e) { $this->logger->warning('An error occurred writing to APNS stream', array('error_message' => $e->getMessage())); $success = false; } return $success; }