기술 자료

지원

Relay

Relay

연결 플로

Connect players through the Allocations service and Relay servers.
읽는 시간 1분최근 업데이트: 5일 전

연결 플로는 Allocations 서비스Relay 서버의 슬롯을 예약하여 매치에 플레이어를 그룹화하는 프로세스입니다. 이 프로세스에는 두 가지 유형의 플레이어(호스트 플레이어와 참여 플레이어)가 포함됩니다. 다음 목록은 연결 프로세스에 포함된 단계를 개괄적으로 설명합니다.
  1. 호스트 플레이어가 할당 요청
  2. Allocations 서비스가 Relay 서버 선택
  3. Allocations 서비스가 호스트 플레이어에게 연결 데이터 전송
  4. 호스트 플레이어가 Relay 서버에 바인드
  5. 호스트 플레이어가 참여 코드 요청
  6. Allocations 서비스가 호스트 플레이어에게 참여 코드 반환
  7. 호스트 플레이어가 참여 플레이어와 참여 코드 공유
  8. 참여 플레이어가 참여 코드 사용
  9. Allocations 서비스가 참여 플레이어에게 연결 데이터 전송
  10. 참여 플레이어가 Relay 서버에 바인드
  11. 참여 플레이어가 연결 요청 전송

호스트 플레이어가 할당 요청

호스트 플레이어는 Allocations 서비스에서 할당을 요청하여 연결 플로를 시작합니다. 할당 요청에는 할당이 허용할 수 있는 최대 연결 수가 포함됩니다. 특정 지역이 포함될 수도 있습니다. 요청에 지역이 포함되어 있지 않은 경우, Allocations 서비스는 QoS를 사용하여 요청에 가장 적합한 지역을 선택합니다.

Allocations 서비스가 Relay 서버 선택

Allocations 서비스는 호스트 플레이어의 요청을 수신하고 적절한 Relay 서버를 선택합니다. Relay 서버 선택은 허용되는 최대 연결 수와 지역에 따라 달라집니다. Allocations 서비스가 Relay 서버를 찾으면 Allocations 서비스는 Relay 서버에서 게임 세션을 위한 공간을 예약합니다. 또한 이 시점에 Relay 서버가 고유한 비밀 키를 생성합니다. Relay 서버는 비밀 키와 함께 Relay 서버 IP, Relay 서버 포트, 연결 데이터를 Allocations 서비스에 반환합니다.

Allocations 서비스가 호스트 플레이어에게 연결 데이터 전송

Allocations 서비스는 호스트 플레이어의 게임 클라이언트에 Relay 서버 연결 데이터를 전송합니다.

호스트 플레이어가 Relay 서버에 바인드

호스트는 할당 요청의 응답에서 수신한 데이터를 사용하여 선택된 Relay 서버에
BIND
메시지
를 전송합니다.
BIND
메시지에는 연결 데이터, 수락 모드, nonce, HMAC가 있습니다. 할당이 생성된 후 60초 이내에 호스트가 Relay 서버에 바인드를 보내지 않으면 할당이 비활성 상태로 인해 시간 초과됩니다.
요청의 정보가 정확하다면 Relay 서버는 다시 호스트 클라이언트에
BIND_RECEIVED
메시지
를 전송하여 바인드 요청 수신을 알립니다.

호스트 플레이어가 참여 코드 요청

Relay 서버에 바인드되면 호스트 플레이어는 Allocations 서비스에서 참여 코드를 요청할 수 있습니다.

Allocations 서비스가 호스트 플레이어에게 참여 코드 반환

Allocations 서비스는 참여 코드를 생성하고 이를 호스트 플레이어에게 반환합니다. Allocations 서비스가 반환하는 참여 코드는 Relay 서버에 대한 호스트 플레이어 할당을 고유하게 나타내며, 참여 플레이어는 이를 통해 동일한 Relay 서버에 바인드하여 호스트 플레이어에게 연결할 수 있습니다.

호스트 플레이어가 참여 플레이어와 참여 코드 공유

호스트 플레이어는 말로 전하거나 텍스트 메시지를 보내거나 Lobby를 사용하는 등 다양한 방법으로 고유한 참여 코드를 다른 플레이어에게 공유합니다. 참여 코드는 짧고 기억하기 쉬워서 간편하게 공유할 수 있습니다. Allocations 서비스에 대한 참여 요청과 함께 참여 코드를 사용하는 플레이어는 참여 플레이어가 됩니다.

참여 플레이어가 참여 코드 사용

참여 플레이어는 호스트 플레이어에게 받은 참여 코드를 사용하여 Allocations 서비스에 참여 요청을 전송합니다.

Allocations 서비스가 참여 플레이어에게 연결 데이터 전송

Allocations 서비스는 참여 코드를 사용하여 호스트 플레이어의 할당을 검색하고 참여 플레이어에게 데이터를 반환합니다. Allocations 서비스의 응답에는 Relay 서버 IP 주소, Relay 서버 포트, 비밀 키, 암호화된 참여 플레이어의 연결 데이터, 참여 플레이어의 할당 ID, 암호화된 호스트 연결 데이터가 포함됩니다. 참여 플레이어는 비밀 키를 사용하여 호스트 연결 데이터의 암호화를 해제하고 이 연결 데이터를 사용하여 호스트에 연결할 수 있습니다.

참여 플레이어가 Relay 서버에 바인드

참여 플레이어는 Allocations 서비스에 요청한 참여 요청의 응답으로부터 받은 연결 데이터를 사용하여 Relay 서버에
BIND
메시지
를 전송합니다.
성공하면 Relay 서버는 참여 플레이어의 게임 클라이언트에
BIND_RECEIVED
메시지
를 전송하여 수신을 알립니다.

참여 플레이어가 연결 요청 전송

호스트 플레이어와 동일한 Relay 서버에 바인드되면 참여 플레이어는 호스트 플레이어에게 연결 요청을 전송합니다. 연결 요청을 성공적으로 전송하면 참여 플레이어와 호스트 플레이어는 Relay 서버를 통해 서로에게 데이터를 전송할 수 있습니다.