SendQueue에서 예외가 발생한 경우 처리를 어떻게 해야 할까요?

에러가 발생한 경우 아래 정보를 모두 제공해주시면 보다 정확한 답변이 가능합니다!

  • SDK 버전 : 5.0.0
  • 에러 코드 :
  • 스테이터스 코드 :
  • 에러메시지 :

이번에 SDK가 업데이트되면서 비동기 함수 큐를 SendQueue로 바꿨는데
단순히 바꿔서는 기존처럼 제대로 작동하지가 않는 것 같습니다.

기존에
BackendAsyncClass.BackendAsyncEnqueue(Backend.BMember.LoginWithTheBackendToken, loginBro =>콜백)

위 함수로 갖고 있는 토큰으로 로그인을 시도하고, 토큰이 유효하지않다는 콜백이 올 시 새로 로그인을 진행하는 방법을 쓰고 있었는데

SendQueue.Enqueue(Backend.BMember.LoginWithTheBackendToken, loginBro =>
위로 바꾼 이후에 문제가 생겼습니다.

토큰이 유효하지 않을 경우에 콘솔창에는
SendQueueThread : Exception
System.Exception:accessToken not exist
라고 나오는데, SendQueue.Enqueue안에 넣은 콜백이 작동하지가 않아 다음 스텝으로 진행할수가 없습니다.
그렇다고 저 부분을 try, catch로 잡는다고 해도 catch에 걸리지도 않구요.
예외가 발생하였을 경우 그 예외를 찍어주는 것 말고는 어디서도 감지를 하지 않는게 큰 문제인 것 같은데
어떻게 해야 할까요?

그리고 Update문에서 SendQueue.Poll()을 해주고 있는데
SendQueue가 시작되었는지 확인할 방법이 없으니 SendQueue가 작동중인지 아닌지에 관계없이
SendQueue.Poll()을 지속적으로 호출을 해야하는데
콘솔에 계속해서 nullreferenceexception이 찍히는게 좀 걸립니다.

안녕하세요. 개발자님

SendQueue.Poll()에서 nullreferenceexception 해당 에러의 경우,
게임 시작시에 비동기큐 시작 함수 SendQueue.StartSendQueue(true) 를 호출하지 않아 발생하는 경우도 있으니,
해당 함수가 선언되어있는지 확인해주시면 감사하겠습니다.

안녕하세요.
SendQueue.StartSendQueue(true)는 게임 시작시 호출하지 않고,
유저가 서버접속을 시도할때 하고 있습니다.
이와 관계없이 Poll()은 Update에서 해줘야하는데 체크할 방법이 없어서 문의드렸습니다.

StartSendQueue가 호출이 안되어 있는 동안은 Poll()함수에서 null이 발생하며 SendQueue로 선언 된 함수가 실행이 안되니 이부분 확인해주시면 감사하겠습니다.

또한 현재는 SendQueue가 실행중인지 멈춰있는 상태인지 체크하는 방법
(이전 버전의 backendAsyncQueueState 같은 상태값)은 제공하고 있지 않습니다.

이부분은 해당 담당자분과 상의해서 제공 가능한지 답변드리겠으니 잠시 기다려 주시면 감사하겠습니다.

안녕하세요
예외문제는 StartSendQueue가 호출 된 이후에 발생한 문제입니다.

SendQueue에서 예외가 발생하였을 경우 어디에서도 이것을 핸들링하지 못하는건 아주 큰 문제인 것 같습니다.

그리고 StartSendQueue를 여러번 호출하였을 경우(의도가 아닌 에러 로직에 의해 어쩔 수 없이)
쓰레드 오류가 나거나 어플리케이션이 아예 스탑되는 현상을 경험했습니다.

안녕하세요 개발자님

우선 이용에 불편을 드려 죄송합니다.

기존 BackendAsyncQueue의 경우 사용에 어려움을 느끼시는 분들이 많아 좀 더 쉽게 사용할 수 있도록 쉽게 바꾸었는데,

되려 이 부분때문에 잘 사용하고 계시는 기능에 문제가 생기신 것 같아 사과의 말씀을 드립니다.

말씀해주신 부분을 반영하여 다음 업데이트에서

쓰레드 초기화 여부를 알 수 있는 변수와
에러를 핸들링 할 수 있도록 이벤트 핸들러를 추가하도록 하겠습니다.

또한 쓰레드 초기화 여부를 알 수 있는 변수를 추가하면
Poll 함수 호출 여부와 StartSendQueue가 여러 번 호출되는 현상도 개선하실 수 있으실 것 같습니다.

피드백 다시 한번 감사드립니다.

좋아요 1