게임정보 동기 비동기 응답속도

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

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

동기로 게임 정보 호출시에 게임이 멈추는 현상이 잇어서 비동기를 쓰고 있는데 비동기 요청 후 15초에서 길게는 25초정도 지난후 데이터가 한번에 들어옵니다.
혹시 동기 비동기의 데이터 요청 후 응답속도 차이가 있나요??
또 비동기 요청 후 응답속도가 너무 느린데 방법 없을까요??
Insert 할때는 괜찮은것 같은데 게임 실행 후 초기에 GetPrivateContents 할때가 문제입니다

안녕하세요 개발자님

우선 동기/비동기 간의 응답시간 차이는 존재하지 않습니다.

질문내용으로 유추해 보자면

요청이 한번에 온다고 하셨는데 혹시 비동기 요청을 한번에 여러개 서버로 보내셨나요??

일단 비동기, 동기 요청 관계없이

모든 요청의 경우 개발자님께서 요청을 보냈을 때 서버로 요청이 가는 것이 아닌
OS스케줄러에 따라 OS에서 요청을 보낼 수 있는 시점에 한번에 보내게 됩니다.

이 때 동기 요청의 경우 1개의 요청만 보내게 되지만, 비동기 요청의 경우 스케줄러에 대기중이던 모든 요청이 한번에 서버로 전송되게 됩니다.

예를 들어 4개의 비동기요청을 보냈다면

코드단에서는 1,2,3,4 요청을 보냈지만 해당 요청들이 함수를 호출했을 때 가는 것이 아닌,

OS의 상황에 따라 요청이 한번에 혹은 3개 요청을 보내고 1개 요청은 조금 나중에 보내는 식으로 요청이 서버로 가게 됩니다.
(이 부분은 os 스케줄러에서 자체적으로 제어하는 것이라 제어가 불가능합니다.)

서버에서는 요청이 한번에 들어오면 들어온 모든 요청에 대해 처리를 한 뒤 응답을 하기 때문에

한번에 비동기 요청을 호출한 경우 응답이 늦게 오는 것 처럼 느껴질 수 있습니다.

이를 해결하기 위해서는

비동기 큐 기능의 사용을 추천드립니다.

해당 기능은 뒤끝에서 제공하는 기능으로 별도의 쓰레드와 큐를 생성하고, 함수 호출대신 큐에 요청할 함수를 삽입하면, 쓰레드에서 큐에 존재하는 함수를 하나씩 꺼내어 서버에 요청을 보내는 함수입니다.

비동기기능과 같이 게임이 멈추는 현상이 없고 한번에 여러 개 함수를 호출해도
순차적으로 처리하기 때문에 선입선출 방식으로 먼저 호출(큐에 삽입)한 함수 순서대로 서버에서 응답이 오게 되는 기능입니다.

기능에 대한 자세한 설명은 아래 개발자문서를 참고해주세요.

감사합니다.