shutdown() {
        return new Promise((resolve, reject) => {
            Logger.debug(this.name, "socket shutdown in progress...");

            try {
                this.socket.disconnect();
            } catch (err) {
                // do nothing, no connection is open
            }

            this.socket.close(() => {
                Logger.debug(this.name, "socket shutdown done");

                resolve();
            });
        });
    }
Shutdown the socket.

@returns {Promise<void>}