요청 관리
이 섹션에서는 세션 요청을 시작부터 끝까지 관리하는 기본 예제를 보여드립니다.
애플리케이션 버전 세트를 다음과 같이 가정해 보겠습니다 Seat네 개의 소켓및 autodeploy이러한 용어에 익숙하지 않다면 세션 문서에서 되돌아가서 확인해야 합니다.
초기 요청 생성하기
매치메이커는 IP 주소가 다음인 플레이어들이 1.2.3.4 및 5.6.7.8 함께 플레이하기를 원한다고 판단했습니다. 매치메이커는 이들을 위한 세션 생성 요청을 보낼 것입니다. 전체 API 문서는 여기에서 확인할 수 있습니다.
현재 세션 요청을 호스팅할 배포가 없으므로 Arbitrium이 두 플레이어를 위해 자동으로 하나를 생성할 것입니다.
세션이 준비되었는지 확인하기 위해 API를 반복적으로 쿼리하는 것은 이상적이지 않습니다. 이를 피하려면 api 호출과 결합되어 인스턴스가 배포를 완료했는지 초당 한 번씩 확인하기 시작합니다. 또한를 사용할 수 있으며, 이는 권장되는 방법입니다.
{
"app_name": "demo",
"version_name": "v1",
"ip_list": ["1.2.3.4", "5.6.7.8"],
"continent": "North America",
"webhook_url": "https://my-webhook.com/callback"
}세션 상태 처리하기
웹훅을 사용하든 GET 요청을 하든 동일한 바디를 받게 됩니다. 세션 GET 바디에는 여러 상태와 키가 포함되어 있지만, 상태 키만 관리하면 됩니다. 처리해야 할 세 가지 상태는 최신 상태는 다음으로 설정되어야 합니다, 오류및 처리 불가.
오류 및 처리 불가
세션이 이 두 상태 중 하나라면 세션을 준비된 배포에 연결할 수 없었음을 의미합니다. 결과적으로 플레이어가 연결할 URL을 얻을 수 없습니다. 이러한 상태는 백엔드에서 처리하는 것이 중요합니다. 다양한 이유로 발생할 수 있습니다.
당신이
autodeploy옵션을 활성화하지 않았거나 이용 가능한 배포가 없거나 모두 최대 용량인 경우가 있습니다.잘못된 구성으로 인해 애플리케이션 버전을 배포할 수 없었습니다.
최신 상태는 다음으로 설정되어야 합니다
세션의 상태가 최신 상태는 다음으로 설정되어야 합니다일 때 이는 플레이어가 배포에 연결할 준비가 되었음을 의미합니다. 연결 URL은 바디의 배포 포트 부분에서 가져올 수 있습니다. GET 바디.
바디에 더 많은 정보가 있지만, 예제와 관련 없는 내용은 명확성을 위해 제거했습니다.
초기화 중, 탐색 중, 대기 중
이들은 보류 상태로, 현재 어떤 배포가 세션을 호스팅할지 분석 중이거나 새 배포를 배포 중일 때 발생합니다. 이러한 상태들은 특별히 처리할 필요가 없습니다.
세션 삭제하기
서버와 플레이어 간의 연결을 끊거나 매치가 종료되어 세션을 삭제해야 한다고 판단되면 삭제 요청을 보내야 합니다.
간단히 세션을 삭제할 수 있습니다 DELETE 에 대한 요청 /v1/session/{SESSION_ID}. 세션은 더 이상 사용 불가능해지기 전에 종료 중 상태로 전환됩니다.
앞서 언급했듯이 세션은 물리적 연결이 아니므로 플레이어의 물리적 연결 및 연결 해제를 처리해야 합니다. 이러한 조작은 세션 생성 및 삭제와 동기화되어야 합니다. 세션을 삭제하지 않으면 잘못된 세션 소켓 사용으로 이어져 필요한 것보다 훨씬 많은 자원을 소비하게 됩니다. Edgegap은 플레이어가 서버에 연결되어야 할 시점을 판단할 수 없으므로 백엔드에서 이를 처리해야 한다는 점을 유의하세요.
기본 필터링
세션을 필터링하여 특정 위치(예: 국가, 대륙, 또는 도시)를 강제할 수 있습니다. 또한 위도 및 경도를 지정할 수 있으며, 배포는 해당 지리적 지점에 가능한 한 가깝게 이루어집니다. 전체 필터 목록은 여기에서 볼 수 있습니다. 이는 매치메이킹 시스템에서 유용하게 사용할 수 있습니다.
다음 섹션에서는 선택자 와 배포에 대한 태그를 사용하여 고급 필터링을 수행하는 방법을 보여드립니다.
세션 웹훅 호출 흐름
세션을 생성할 때 세션 상태 업데이트를 받기 위한 웹훅 URL을 제공할 수 있습니다. 이는 API를 폴링하는 것보다 세션을 관리하는 더 효율적인 방법입니다.
다음 시퀀스 다이어그램은 세션 웹훅의 호출 흐름을 보여줍니다.

마지막 업데이트
도움이 되었나요?

