public function sendRequest()
    {
        $notification = $this->getNotificationOrThrowException();

        try {
            $connection = $this->getClientConnection();
            $connection->write($notification->getPayload());

            $errorResponseData = $connection->read(Response::ERROR_RESPONSE_LENGTH);

        } catch (\Exception $e) {
            throw new ClientException($e->getMessage());
        }

        return new Response($errorResponseData ? : '', $notification->getRecipients());
    }