[업데이트 소식] 실시간 알림 기능을 이용한, 실시간 우편 감지 핸들러

안녕하세요!
개발이 필요 없는 게임 서버, 뒤끝입니다.

뒤끝에서 가장 많이 사용되는 기능이 무엇일까요?

바로 게임 운영의 필수 요소,  ‘우편’ 기능입니다. 많은 개발자 분들이 우편을 통해 보상을 지급하거나, 알림을 보내거나, 유저간 선물 시스템을 구현하고 계신데요!

오늘은 [실시간 알림] 기능을 이용한, 실시간 우편 발송 감지 핸들러 를 소개합니다.

👋 깨알 뒤끝 정보

기존의 뒤끝 우편 기능은 비동기 서버로 구현되어 있었어요.

때문에 유저에게 실시간으로 우편 알림을 보내기 위해서는 n분에 한 번씩 우편 불러오기 함수를 별도로 호출해 주어야 했습니다. 이러한 불편함을 줄이기 위해서 이번 실시간 알림 기능이 만들어 졌으니, 집중해 주세요!

💡 구현 예시

오늘 소개드리는 내용을 잘 따라와 보시면,
아래 사용 예시와 같이 새 우편이 있을 경우 실시간으로 알려주는 시스템을 구현할 수 있습니다.

함수를 주기적으로 호출하지 마시고, 실시간 알림 기능을 활용하는 것을 추천 드립니다.
사용법도 아주 간단합니다😊

그란젠카 우편알림 UI

*위 이미지는  우편 알림 UI를 보여주기 위해 가져온 〈그란젠카〉의 인 게임 화면입니다.

1. 실시간 알림 서버 접속

뒤끝의 초기화와 로그인*이 완료되었다면 실시간 알림 서버의 핸들러를 등록하고 접속합니다.

실시간 알림은 뒤끝챗, 뒤끝매치와는 다르게 실시간으로 데이터를 주고 받게 하는 Poll함수가 필요하지 않습니다.

*초기화 및 로그인은 뒤끝을 이용하기 전 거쳐야 할 필수 단계입니다.
아직 완료 전이신 개발자 님께서는, 뒤끝 가이드라인을 참고하여 진행해 주세요!

				
					void Start() {
    var bro = Backend.Initialize(true);
    if(bro.IsSuccess() == false) {
        Debug.LogError("초기화 실패 : " + bro);
        return;
    }
    
    bro = Backend.BMember.CustomLogin("user1", "user1");
    if(bro.IsSuccess() == false) {
        Debug.LogError("로그인 실패 : " + bro);
        return;
    }
    
    SetNotificationHandler();

    Backend.Notification.Connect();
}

void SetNotificationHandler() {
    Backend.Notification.OnAuthorize = (bool isSuccess, string reason) => {            
        if (isSuccess) {
            Debug.Log("실시간 알림 서버 접속에 성공했습니다.");
        }
            
        Debug.LogWarning("실시간 알림 서버 접속에 실패했습니다.\n" + reason );
    };
}
				
			
2. 실시간 알림 우편 발송 등록

실시간 알림 접속 핸들러를 등록한 함수에서 우편 발송 핸들러 또한 등록해줍니다.

해당 핸들러에서는 우편 반복 발송 타입(즉시 발송, 반복 발송, 예약 발송), 우편 제목, 우편 내용, 우편 발송인을 확인할 수 있습니다.

				
					void SetNotificationHandler() {
    Backend.Notification.OnAuthorize = (bool isSuccess, string reason) => {            
        if (isSuccess) {
            Debug.Log("실시간 알림 서버 접속에 성공했습니다.");
        }
        else {
            Debug.LogWarning("실시간 알림 서버 접속에 실패했습니다.\n" + reason );
        }  
    };

    // 추가. 실시간 알림 우편 발송 핸들러
    Backend.Notification.OnNewPostCreated = (BackEnd.Socketio.PostRepeatType postRepeatType, string title, string content, string author) => {
         Debug.Log(
            $"우편이 발송되었습니다.\n" +
            $"| 우편 반복 타입 : {postRepeatType}\n" +
            $"| 우편 제목 : {title}\n" +
            $"| 우편 내용 : {content}\n" +
            $"| 우편 발송인 : {author}\n");
        };
}
				
			
3. 유니티로 디버깅하여 실시간 알림 접속

아래 코드를 실행시키는 스크립트를 생성하고 유니티 디버깅을 시작합니다.

유니티의 Console에서 ‘실시간 알림 서버 접속에 성공하였습니다’ 라는 로그가 발생하는 것을 확인합니다. 아래와 같이 해당 로그가 발생했다면 유저는 실시간 알림 서버 접속에 성공한 것입니다.

유니티 성공 로그
4. 뒤끝 콘솔에서 우편 발송

이후 뒤끝 콘솔 > 우편 발송에서 우편을 발송해봅니다.

뒤끝 콘솔 우편 발송 화면
5. 유니티에서 핸들러 응답 확인

뒤끝 콘솔에서의 우편 발송이 완료되었을 때, 

유니티 콘솔 로그창에서도 ‘우편이 발송되었습니다.’ 라는 로그가 발생하게 됩니다. 역시나 아래와 같이 해당 로그를 확인하셨다면, 실시간 우편 기능 정상적으로 연동이 완료된 상태입니다.

유니티 핸들러 응답 확인

오늘은 실시간 알림 핸들러를 통해, 실시간 ‘우편 알림’을 구현하는 방법을 알아보았습니다.
어떠셨나요?

뒤끝베이스를 이용하시던 개발자 분들은, 기존과 함수 호출 방식에서 차이가 있다는 것을 알아보셨을 것 같은데요! 다소 어색할 수 있겠으나 코드 작성이 거의 필요 없을 정도로 간단히 준비하였으니,

UI 알림을 구현하고 싶으시다면 이 기능을 활용해 보시기를 추천 드립니다😊

⭐ 추가 활용 TIP!

실시간 알림 기능은 우편 발송 이외에, 아래 상황에서도 활용할 수 있어요!

✅ 공지사항 게재 시 [실시간 알림 - 공지사항 등록 핸들러]
✅ 이벤트 생성 시 [실시간 알림 -이벤트 등록 핸들러]
✅ 점검 등으로 인한, 서버 상태 변경 시 [실시간 알림 - 프로젝트 상태 변경 핸들러]

*[실시간 알림 – 우편 핸들러] 개발자 문서에서, 소개드린 다른 핸들러 안내도 확인 가능하니 참고해 주세요!

2

댓글