메시지
comms의 메시지는 이진 데이터입니다 패킷, protocol buffers를 사용해 직렬화된 프로토콜 버퍼. 이들은 텍스트 및 음성 채팅, 위치 업데이트, 프로필 변경 및 기타 실시간 상호작용을 전달합니다.
모든 메시지 정의는 다음에서 확인할 수 있습니다 프로토콜 저장소, 그리고 아래의 각 메시지 유형에는 해당 선언으로 연결되는 링크가 있습니다.
패킷 ↗ 소스
이 패킷 구조는 모든 메시지의 컨테이너입니다.
message
열거형
다음 중 하나입니다 채팅, 음성, 위치, 프로필 버전 알림,
프로필 요청, 프로필 응답, 또는 씬.
텍스트 및 음성 채팅
클라이언트는 텍스트 메시지와 오디오 클립을 연결된 모든 피어(보통 같은 섬의 플레이어)에게 브로드캐스트하여 채팅합니다.
두 개만 패킷 유형이 관련되며, 사용 사례마다 하나씩 있습니다. 일반적으로 클라이언트는 이러한 메시지를 섬의 다른 모든 클라이언트에게 브로드캐스트하며, 섬은 상호작용할 수 있는 인근 플레이어들의 그룹입니다.
채팅 ↗ 소스
다른 클라이언트에게 텍스트 채팅 메시지를 보냅니다.
message
string
메시지의 텍스트
타임스탬프
double
발신자의 UTC 타임스탬프
음성 ↗ 소스
인코딩된 음성 샘플을 다른 클라이언트에게 보냅니다.
encoded_samples
bytes
인코딩된 오디오 데이터
코덱
열거형
오직 VC_OPUS (현재는 다른 코덱은 지원되지 않습니다)
인덱스
uint32
발신자가 설정하는 증가 카운터
이 코덱 필드는 열거형 값입니다. 사용자 정의 코덱은 지원되지 않습니다.
이동
아바타를 제어하는 클라이언트는 플레이어 간의 이동과 자세를 동기화하기 위해 섬 내에서 위치 업데이트를 송수신합니다.
위치 ↗ 소스
아바타의 위치와 방향을 다른 클라이언트에 업데이트합니다.
position_x
position_y
position_z
float
월드 맵에서의 아바타 위치
rotation_x
rotation_y
rotation_z
rotation_w
float
아바타 회전 쿼터니언
인덱스
uint32
발신자가 설정하는 증가 카운터
클라이언트는 일반적으로 위치 업데이트를 낮은 빈도로 전송하다가(예: 1~2초마다 한 번), 이동하거나 상호작용할 때는 높은 빈도(초당 여러 번)로 전환합니다.
낮은 빈도의 브로드캐스트는 잠시 연결이 끊겼거나 섬에 합류하는 동안 메시지를 놓친 클라이언트에게 업데이트를 전달하는 간단한 해결책으로 권장됩니다.
이 인덱스 필드는 발신자가 설정하는 증가 카운터로, 수신자가 순서 없이 도착한 업데이트를 정렬할 수 있게 합니다.
프로필 공유
섬 안의 클라이언트는 다른 플레이어의 아바타 정보를 요청하여 아바타를 렌더링하고, 이름과 사진 등을 표시할 수 있습니다.
프로필 변경은(예: 위치 업데이트에 비해) 드물기 때문에, 이 시스템은 로컬 프로필 캐시를 유지하는 작업을 단순화하고 필요할 때만 프로필을 가져오도록 설계되었습니다.
세 가지가 있습니다 패킷 유형이 관련됩니다: 한 프로필 요청/프로필 응답 쌍은 클라이언트가 필요할 때 프로필을 공유하는 데 사용하며, 프로필 버전 알림 메시지는 피어에게 최신 버전이 무엇인지 알려주어 요청 여부를 결정하게 합니다.
클라이언트는 일반적으로 프로필 버전 알림 메시지를 주기적으로 브로드캐스트하고, 프로필이 변경되면 즉시 브로드캐스트합니다.
Unexpected error with integration mermaid: Integration is not installed on this space
프로필 버전 알림 ↗ 소스
다른 클라이언트에게 다음이 있음을 알립니다 프로필 엔터티 요청할 수 있습니다.
profile_version
uint32
변경될 때마다 증가하는 버전 번호입니다.
프로필을 캐시하는 수신자는 profile_version 숫자를 사용해 로컬 사본이 최신인지, 아니면 다음을 보내야 하는지 판단할 수 있습니다. 프로필 요청.
프로필 요청 ↗ 소스
특정 피어에게 지정된 버전의 프로필을 요청합니다.
address
string
프로필의 식별 주소입니다.
profile_version
uint32
원하는 프로필 버전입니다.
수신자는 다음으로 응답할 수 있습니다 프로필 응답 요청된 프로필을 제공하는 메시지입니다.
프로필 응답 ↗ 소스
다음에 대한 응답으로 프로필을 보냅니다 프로필 요청.
serialized_profile
string
JSON으로 직렬화된 프로필 엔터티입니다.
base_url
uint32
발신자가 권장하는 파일시스템 엔드포인트의 기본 URL입니다.
이 serialized_profile 필드에는 다음의 JSON 직렬화가 포함됩니다 프로필 엔터티.
발신자가 프로필에서 참조된 엔터티(예: 착용 아이템)를 다운로드할 콘텐츠 서버를 권장하고 싶다면, 다음을 설정할 수 있습니다 base_url 필드를 힌트로 사용할 수 있습니다. 클라이언트는 이 URL을 사용하거나 무시할 수 있습니다.
마지막 업데이트