public function disconnect($drop = false)
    {
        if(is_resource($this->socket)) {
            fclose($this->socket);
        } else {
            $this->logger->warning("Socket is not resource in $this - cannot close it.");
        }

        $this->logger->info("Listener $this closed");

        throw new NodeDisconnectException($this);
    }