매칭 재접속 시 새로운 세션아이디가 새로 추가 생성되는 문제

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.5.0
  • 프로젝트명 : Yut Nori
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :
    1:1 랜덤 매칭으로 게임을 진행하는 와중에 한 유저의 통신이 바뀌면(와이파이 → LTE 혹은 반대로)
    해당 유저의 인게임 서버와 매칭서버가 끊기게 되는데
    이런 경우 재접속 시도를 하고 인게임에 입장을 하면 기존 둘이어야 하는 세션 아이디가
    3개로 늘어나버립니다. 원인이 무엇일까요?
  1. 유저 kk(id: 395)와 tt(id: 190)가 1:1 매칭이 잡혔습니다.
    image

  2. 유저 kk가 통신이 바뀌고 서버 접속이 끊기고 나서 재접속 후 세션 아이디 현황입니다.
    → 세션아이디 216이 새로 추가됨
    image

  3. 2인 매치에 세션아이디 3개가 되는 것이 가능한건가요?
    → 어플 강제 종료 후 재접속에는 세션아이디에 아무 문제가 없습니다.
    → 통신환경이 바뀌고 나서만 문제입니다. 게임 중 와이파이 → LTE로 변경 또는 반대 상황.

  4. 그리고 통신이 바뀌면 서버가 끊기게 되어 있는 게 정상인가요?

안녕하세요 개발자님,
문의하신 내용들 상세히 확인 후 안내드리도록 하겠습니다.

넵 답변 기다리겠습니다!

  1. 답변이 많이 늦으시네요.

  2. 저번에 말씀드린대로입니다.
    → gamer in date값을 보시면 아시겠지만
    → 분명 같은 유저 둘인데 재접속시 세션아이디가 4개가 됩니다.

안녕하세요 개발자님

확인이 늦어 죄송합니다.

와이파이의 연결이 변경되었을 경우, 뒤끝 매치의 연결이 끊기게 됩니다.
(Exception에서 Network subsystem is down 에러 호출)

해당 경우에는 더 이상 매치의 호출이 불가능하며, 어플 강제 종료 후 재접속 하면 정상적으로 접속이 가능해집니다.

유저 세션 아이디의 경우, 앱 강제 종료가 아닌 매치 서버 종료/ 인게임 서버 종료 / 오프라인&온라인 메세지 응답 후에 재접속을 하신 것일까요?

와이파이 연결이 변경된 후에 강제 종료 후 재접속해도 저렇습니다.
와이파이 연결이 변경되지 않은 그 외의 경우에는 별 문제 없습니다.
하지만 이번 서버 이슈 이후에는 그냥 재접속인 경우에도 세션아이디가 새로 추가되네요,

혹시 해당 SDK 버전 5.6.0으로 업데이트 후 테스트가 가능하실까요?(최신버전인 5.7.0 X)

5.6.0SDK에서 관련 매치 내부 로직이 개선되도록 변경되어 해당 SDK로 업데이트에도 동일증상 발생하는지 확인해주시면 감사하겠습니다.

[Backend-5.6.0.unitypackage 다운로드]

현재 쓰는 버전에서 5.6.0으로 업데이트할 때 주의사항이나 따로 가이드가 있을까요?

5.6.0으로 버전 업데이트를 하고 테스트 해보니 일단 세션 아이디가 새로 추가 생성되는 문제는 사라진듯 합니다.
다만, 와이파이 변경 시 연결이 끊기면 상대 쪽에서 OnSessionOffline 이벤트가 뒤늦게 발동하는데, 원래 그런 것인지 아니면 다른 원인이 있을까요?

네, 맞습니다.

OnSessionOffline의 경우, 해당 유저의 Poll()함수 요청이 끊어졌기에 발생하는 것이며 요청이 끊어진 것인지 확인하는 시간이 존재하기에 이벤트가 늦게 발생하는 것이 정상입니다.

넵 답변 감사합니다^^

(Exception에서 Network subsystem is down 에러 호출)이라 하셨는데
해당 문구는 어디서 확인 가능한가요?
OnSessionOffline 이벤트에서 args.Reason을 로그로 찍어봐도 아무런 문구가 뜨질 않네요.

자신의 와이파이가 끊어졌다면 OnLeaveInGameServer 핸들러에서 ErrorInfo가 Exception으로 반환이 됩니다.
(Reason의 문구는 다를 수 있습니다.)

다른 유저의 와이파이가 끊어졌다면 OnSessionOffline에서 확인할 수 있습니다.

다른 유저의 와이파이가 끊어졌다면 OnSessionOffline에서 확인할 수 있다 하셨는데,
OnSessionOffline 이벤트에 대해 문의드립니다. - Hassan님의 글 #2 답변에서는 구분이 불가능하다 하십니다.
강제종료에 의한 접속 끊김인지 네트워크 변경에 대한 접속 끊김인지 구분해내는 방법이 아예 없는 것인가요?

안녕하세요 개발자님
위 답변의 경우 자신의 네트워크 끊김과, 타 유저의 네트워크 끊김에 따른 확인이
각각 다른 이벤트 핸들러를 통해 진행됨에 대해 안내드린 내용입니다.

링크해주신 문의의 답변과 같이 강제종료 및 네트워크 끊김 상황에 대해 구분은 불가한 점 참고 부탁드리겠습니다.

그러면, 타 유저의 접속 끊김이 와이파이가 끊겨서 그런 건지 강제로 끊은 건지는 알 방법이 없다라고 이해하면 될까요?

네, 맞습니다.
다른 유저에게서 발생한 강제 종료 및 네트워크 끊김으로 인한 게임 나가짐 현상은
모두 OnSessionOffline에서 발생되며 Success로 발생하여 구분은 불가능합니다.

답변 감사합니다^^