Relay 메시지 프로토콜
Understand how the Relay message protocol transmits data between clients and servers in the Relay service.
읽는 시간 3분최근 업데이트: 한 달 전
프로젝트에서 Relay SDK를 UTP 또는 NGO와 함께 사용하는 경우, Relay 메시지 프로토콜은 기본적으로 지원됩니다. 그러나 대체 엔진이나 네트워킹 솔루션을 사용하려면 먼저 Relay 메시지 프로토콜을 구현해야 합니다. Relay 메시지 프로토콜 세부 사항을 사용하여 Relay 메시지 프로토콜을 구현하십시오. Relay 메시지 프로토콜은 필드 값이 빅 에디안순으로 표현된다고 간주합니다. 이를 '네트워크 순서'라고도 하는데, 가장 중요한 바이트가 가장 먼저 발생한다는 의미입니다. HMAC 서명을 사용하는
BIND메시지 유형
| 코드 | 이름 | 설명 |
| | |
| | |
| | |
| | |
| 예약됨. | |
| 예약됨. | |
| | |
| 예약됨. | |
| 예약됨. | |
| | |
| | |
| | |
| | |
수락 모드 유형
수락 모드는 연결을 시도하는 클라이언트의 요청을 Relay 서버가 처리하는 방식을 정의합니다. Relay는AUTOAUTO| 코드 | 이름 | 설명 |
| | |
| 예약됨. |
표준 헤더
모든 메시지 유형은 표준 헤더를 공유하며, 표준 헤더에는 서명, Relay 메시지 프로토콜 버전, 패킷 본문에 포함된 메시지가 있습니다.| 바이트 | 1 .. 2 | 3 | 4 |
| 목적 | | | |
| 필드 | 유형 | 설명 |
| []바이트 | |
| uint8 | |
| uint8 | |
메시지 본문
BIND 메시지
BINDBINDBINDBINDBINDNonce| 바이트 | 1 .. 4 | 5 | 6 .. 7 | 8 | 9 .. N | N+1 .. 33 |
| 목적 | 헤더(유형 0) | | | | | |
BIND| 필드 | 유형 | 설명 |
| uint8 | |
| uint16 | |
| uint8 | |
| []바이트 | |
| [32]바이트 | |
보안
Allocations 서비스에서 반환된 비밀 키로 HMAC에 서명해야 합니다. HMAC가 유효하지 않은 경우, Relay 서버는BIND messageBIND messageBIND_RECEIVED 메시지
Relay 서버는 요청 클라이언트가BIND messageBIND_RECEIVEDCONNECT_REQUEST message| 바이트 | 1 .. 4 |
| 목적 | 헤더(유형 1) |
PING 메시지
PINGPING
각
PINGPINGPING| 바이트 | 1 .. 4 | 5 .. 20 | 21 .. 22 |
| 목적 | 헤더(유형 2) | | |
PING| 필드 | 유형 | 설명 |
| [16]바이트 | |
| uint16 | |
CONNECT_REQUEST 메시지
CONNECT_REQUESTToConnectionData| 바이트 | 1 .. 4 | 5 .. 20 | 21 | 22 .. |
| 목적 | 헤더(유형 3) | | | |
CONNECT_REQUEST| 필드 | 유형 | 설명 |
| [16]바이트 | |
| uint8 | |
| []바이트 | |
ACCEPTED 메시지
Relay 서버는 타겟 클라이언트에 성공적으로 연결한 후에 요청 클라이언트에ACCEPTED| 바이트 | 1 .. 4 | 5 .. 20 | 21 .. 36 |
| 목적 | 헤더(유형 6) | | |
ACCEPTED| 필드 | 유형 | 설명 |
| [16]바이트 | |
| [16]바이트 | |
DISCONNECT 메시지
DISCONNECTCONNECT_REQUESTDISCONNECTDISCONNECTDISCONNECTERROR messageRELAYCONNECT_REQUEST message| 바이트 | 1 .. 4 | 5 .. 20 | 21 .. 36 |
| 목적 | 헤더(유형 9) | | |
DISCONNECT| 필드 | 유형 | 설명 |
| [16]바이트 | |
| [16]바이트 | |
RELAY 메시지
클라이언트는RELAYRELAYBIND messageFromAllocationIDErrClientPlayerMismatchERRORCONNECT_REQUESTErrNotConnectedERROR messageToAllocationIDFromAllocationID| 바이트 | 1 .. 4 | 5 .. 20 | 21 .. 36 | 37 .. 38 | 39 .. |
| 목적 | 헤더(유형 10) | | | | |
다음 표는
RELAY| 필드 | 유형 | 설명 |
| [16]바이트 | |
| [16]바이트 | |
| uint16 | |
| []바이트 | |
CLOSE 메시지
CLOSECLOSECLOSECLOSEERRORCLOSECLOSECLOSEBINDPING| 바이트 | 1 .. 4 | 5 .. 20 |
| 목적 | 헤더(유형 11) | |
CLOSE| 필드 | 유형 | 설명 |
| [16]바이트 | |
ERROR 메시지
Relay 서버는ERROR| 바이트 | 1 .. 4 | 5 .. 20 | 21 |
| 목적 | 헤더(유형 12) | | |
ERROR| 필드 | 유형 | 설명 |
| [16]바이트 | |
| uint8 | |
오류 코드
다음 표는 Relay 서버가 클라이언트에 전송할 수 있는 오류 메시지를 설명합니다.| 코드 | 이름 | 설명 |
| 잘못된 프로토콜 버전( | |
| 비활성 상태로 인한 플레이어 시간 초과( | |
| 권한 없음( | |
| 할당 ID 클라이언트 불일치( | |
| 할당 ID를 찾을 수 없음( | |
| 연결되지 않음( | |
| 허용되지 않은 자체 연결( | |