public Mono<Boolean> disconnect(@NotNull Long userId, @NotNull SessionCloseStatus closeStatus) {
        try {
            Validator.notNull(closeStatus, "closeStatus");
        } catch (ResponseException e) {
            return Mono.error(e);
        }
        return userStatusService.getUserSessionsStatus(userId)
                .flatMap(sessionsStatus -> {
                    if (sessionsStatus.isOffline()) {
                        return PublisherPool.FALSE;
                    }
                    Set<Map.Entry<String, Set<DeviceType>>> entries =
                            sessionsStatus.getActiveNodeIdToDeviceTypes()
                                    .entrySet();
                    List<Mono<Boolean>> monos = new ArrayList<>(entries.size());
                    for (Map.Entry<String, Set<DeviceType>> entry : entries) {
                        SetUserOfflineRequest request =
                                new SetUserOfflineRequest(userId, entry.getValue(), closeStatus);
                        monos.add(node.getRpcService()
                                .requestResponse(entry.getKey(), request));
                    }
                    return PublisherUtil.atLeastOneTrue(monos);
                })
                .defaultIfEmpty(false);
    }
@return true if at least one device of the user was online
turms-service/src/main/java/im/turms/service/domain/user/service/onlineuser/SessionService.java