public Mono<Void> destroy() {
        CloseReason closeReason = CloseReason.get(SessionCloseStatus.SERVER_CLOSED);
        return heartbeatManager.destroy()
                .then(Mono
                        .defer(() -> closeAllLocalSessions(closeReason)
                                .onErrorMap(t -> new RuntimeException(
                                        "Caught an error while closing local sessions",
                                        t)))
                        .then());
    }
We don't use "NonBlockingHashMapLong" because we need to support IPv6 addresses, which takes
16 bytes per address. So we can only eliminate unnecessary objects after Valhalla publish
value objects.
turms-gateway/src/main/java/im/turms/gateway/domain/session/service/SessionService.java