안녕하세요 프로젝트 -> 프로젝트 상태 메뉴에서 온라인/오프라인/점검중 변경에 대해 질문이 있습니다.

  • 뒤끝 SDK 버전 : 5.17.1
  • 프로젝트명 : bpa
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

유니티를 사용중이고, Backend.IsInitialized == true 까지 확인한 상태에서
Backend.Notification.OnServerStatusChanged를 등록했는데 상태를 점검중이나 오프라인 등으로 변경해도
콜백이 날아오지 않습니다.

게스트로그인이나 버전 체크는 잘 동작하는것을 확인한 상태입니다.

SDK문서에서는 따로 전제 조건 같은게 보이지 않아서 어떤 설정을 더 해야

서버 설정 변경시 실시간 변경 콜백을 받을 수 있을지 궁금합니다.

https://docs.backnd.com/sdk-docs/backend/5.17.1/base/notify/handler-console/project-status 이 문서를 보고
아래와 같이 코드를 작성 했습니다.

public class MaintenanceModel
{
    private static UniTaskCompletionSource<bool> currentTcs;
    private static CancellationTokenSource currentCts;

    public static async UniTask<bool> WaitForMaintenance()
    {
        currentCts?.Cancel();
        currentTcs?.TrySetCanceled();
        currentCts?.Dispose();

        currentCts = new CancellationTokenSource();
        currentTcs = new UniTaskCompletionSource<bool>();

        CancellationToken token = currentCts.Token;

        while (!Backend.IsInitialized)
            await UniTask.Delay(100, cancellationToken: token);

        Debug.Log($"[서버 상태 변경 감지 대기 시작]");

        Backend.Notification.OnServerStatusChanged = (ServerStatusType serverStatusType) =>
        {
            Debug.Log(
                $"[서버 상태 변경 감지]\n" +
                $"| ServerStatusType : {serverStatusType}\n"
            );

            bool isUnavailable = serverStatusType == ServerStatusType.Maintenance || serverStatusType == ServerStatusType.Offline;
            currentTcs?.TrySetResult(isUnavailable);
        };

        try
        {
            bool onMaintenance = await currentTcs.Task.AttachExternalCancellation(token);

            if (onMaintenance)
                Debug.Log("[서버 유지보수 중]");
            else
                Debug.Log("[서버 온라인]");

            return onMaintenance;
        }
        catch (OperationCanceledException)
        {
            Debug.LogWarning("[WaitForMaintenance] 이전 요청이 취소됨");
            return false;
        }
    }
}

커뮤니티글을 보고

소셜 설정의 실시간 알림 설정을 활성화 해봤는데도 마찬가지 입니다.
혹시 에디터 환경에서는 테스트가 불가능한지요?

SDK에서 Backend.Notification.Connect();까지하면 문제가 해결됩니다.

고통받을실 분들을 위해 남겨둡니다.

좋아요 1