compass서버 브라우저

Edgegap 서버 브라우저에 오신 것을 환영합니다 OPEN BETA. 새 서비스를 미리 체험하고 Discord의 원탁 토론을 통해 향후 방향을 함께 만들어 주시길 바랍니다.

서버 브라우저는 다음을 위한 관리형 서비스입니다 배포 지역화된 인터넷 서비스 제공업체(ISP)가 일시적으로 사고를 해결하고 있을 수 있습니다, 영구적인 서버:

  • 플레이어가 용량, 지연 시간 또는 게임 매개변수에 따라 적절한 서버를 목록화하고 접속하도록 돕습니다 용량, 지연 시간 또는 게임 매개변수를 기반으로;

  • 📢 새 서버를 사전 가열(pre-warm) 전 세계 수요를 대규모로 처리하고 답답한 대기열을 방지하기 위해;

  • 📢 서버 운영 간소화 업데이트, 재시작, 영구성, 메싱 등 운영을 포함합니다.

circle-info

📢 아이콘으로 표시된 항목은 초기 출시 및 이후에 계획된 기능입니다(아직 이용 불가).

circle-check

✔️ 준비

네트워킹 플로우

서버 브라우저 아키텍처

서버 브라우저를 사용할 때 중요한 데이터 흐름 네 가지(4)가 있습니다:

  1. 배포 API 전용 서버를 배포, 확장 및 관리하는 데 사용됩니다.

    1. 사용하세요 v2/deploy API 자체 호스팅 마이크로서비스 및 백엔드 서비스를 매치 기반 세션 24시간 미만 지속됩니다.

    2. 사용하세요 프라이빗 플릿 배포 API 시작하려면 대기(스탠바이) 서버 무료 등급 배포는 60분 제한이 있으니 계정 업그레이드를 고려하세요. 영속성.

    3. 📢 규칙 기반 자동 확장 및 메싱 지원을 위해 Hot Standby를 사용하세요.

  2. 서버 API 전용 서버가 가용성을 알리고 용량을 관리하기 위해 사용합니다.

  3. 좌석 예약 API 게임 클라이언트가 전용 서버를 검색하고 연결하는 데 사용합니다.

  4. 넷코드 전송은 게임 클라이언트와 전용 서버 간 통신에 사용됩니다.

circle-info

출시 후에는, 서버 브라우저는 24시간 연중무휴로 실행되어야 합니다 전 세계 플레이어가 서버에 접속할 수 있도록 하기 위해.

▶️ 브라우징 시작

서버/플레이어 수명주기와 효율적인 서버 사용을 위한 책임에 대해 알아보세요.

인증하기

서버 브라우저는 자동으로 두 종류의 토큰을 생성합니다:

  • 서버 토큰 - 다음에 필요함 서버 API 메서드는, 다음과 같이 사용할 수 있습니다 앱 버전 변수로 주입.

    • 모든 API 메서드에 대한 접근을 허용하며, 테스트, 데브옵스 또는 커스텀 오케스트레이터에 유용합니다.

  • 클라이언트 토큰 - 다음에 필요함 모니터 및 좌석 예약 API 게임 클라이언트에서 사용하는 메서드입니다.

    • 토큰 교체를 쉽게 하려면 제3자 비밀 저장소에 이 토큰을 저장하는 것을 권장합니다.

인스턴스 등록(Discover Instance)

배포 API 전용 서버를 배포, 확장 및 관리하는 데 사용됩니다.

새로운 것을 시작할 때 배포, 서버 브라우저에 새 인스턴스를 알리고 여러 선택적 메타데이터 매개변수를 설정하세요 플레이어 필터링, 정렬 및 브라우징에 유용한:

  • 슬롯 정보 - 팀 수용량 및 팀별 메타데이터(예: 팀 이름),

    • 인스턴스당 최소 하나의 슬롯은 플레이어 용량 관리를 위해 필요합니다;

  • 이름 및 태그 - 사용자 정의 가능하고 고유하며 사람이 읽기 쉬우며 검색 가능한 레이블;

  • 연결 세부정보 - URL, IP, 외부 포트 또는 기타 매개변수;

  • 호환성 데이터 - 서버 버전 또는 지원되는 클라이언트 버전;

  • 지연 시간 수식자 - 도시 및 지역 식별자, 그리고 할당된 핑 비콘 세부정보;

  • 게임 매개변수 - 레벨/장면/맵, 게임 모드, 난이도, 사용된 모드;

  • 플레이어가 필터링하고 적합한 서버를 찾는 데 도움이 되는 기타 모든 맞춤 매개변수.

circle-info

위의 메타데이터 매개변수는 예시일 뿐이며, 위 항목들을 포함해 어떤 매개변수도 정의할 수 있습니다. 모든 메타데이터 매개변수는 선택 사항이며, 일부 인스턴스는 모든 매개변수를 정의할 필요가 없습니다.

메타데이터는 키는 문자열, 값은 문자열, 숫자, 불리언 또는 문자열 배열을 지원합니다.

circle-check

서버는 언제든지 인스턴스 또는 슬롯 메타데이터를 업데이트할 수 있습니다 발견 가능성 기준을 수정하기 위해.

서버 인스턴스는 주기적으로 생존 확인(keep-alive) 하트비트를 전송해야 합니다 지속적인 가용성을 확인하고 충돌 또는 오프라인 서버에 플레이어가 접속 시도하는 것을 방지하기 위해. 30초 동안 하트비트를 놓치면 인스턴스와 모든 보류 중인 좌석 예약이 자동으로 제거됩니다.

📢 서버는 축소(중지)되기 전에 추가 하트비트 요청 없이도 발견 가능 상태를 유지하도록 인스턴스를 "동면 모드(hibernation mode)"로 업데이트할 수 있습니다. 플레이어가 서버 브라우저 동면 중인 인스턴스에 요청하면, 서버 브라우저가 귀하의 서버를 자동으로 재배포합니다.

circle-info

에 대해 영속성 영구 세계 상태 관리를 위해 앱 및 버전 더 빠른 배포를 위해.

검색 및 브라우징

플레이어는 서버 인스턴스를 나열하고 결과를 페이지네이션할 수 있습니다 참여할 서버를 찾기 위해. 핑(지연) 데이터를 표시하려면 각 인스턴스의 핑 비콘 세부정보를 읽고 지연 시간을 측정하세요.

인스턴스와 슬롯은 접속 가능한 좌석이나 인덱싱된 메타데이터 매개변수로 필터링할 수 있습니다.

매개변수
연산자
예시 필터(간단한 예시 기반)

"joinable_seats"

eq 또는 ne 또는

lt 또는 le 또는

gt 또는 ge

"string" (메타데이터)

eq 또는 ne 또는

lt 또는 le 또는

gt 또는 ge 또는 contains

"int" , 또는 "float"

(메타데이터)

eq 또는 ne 또는

lt 또는 le 또는

gt 또는 ge

"bool" (메타데이터)

eq 또는 ne

circle-check
circle-info

커서 기반에 대해 알아보세요 서버 브라우저 사용자가 더 많은 결과를 가져오도록 허용하기 위해.

좌석 예약

서버에 접속하기 전에, 해당 인스턴스가 충분한 사용 가능한 용량을 제공하는지 보장하기 위해 좌석 예약이 필요합니다. 예약은 여러 플레이어 그룹 또는 개인 단독으로 포함할 수 있습니다.

슬롯의 접속 가능한 좌석 용량을 초과하는 예약은 자동으로 거부됩니다 (409 Conflictarrow-up-right). 접속 가능한 좌석은 아직 다른 플레이어가 예약하지 않은 사용 가능한 좌석입니다.

페더레이티드 아이덴티티: 플레이어는 예약 시 고유한 제3자 플레이어 ID를 제공해야 합니다. 동일한 ID를 보낸 후 그들이 서버 브라우저 서버가 신원을 확인할 수 있게 됩니다.

예약이 성공적으로 이루어지면 (200 OKarrow-up-right) 플레이어는 즉시 연결을 시도해야 합니다. 보류 중인 예약은 서버에서 확인되지 않으면 30초 후에 만료됩니다 서버에 의해 확인됩니다.

circle-info

서버는 임의의 슬롯의 용량을 강제로 변경하거나 슬롯을 추가, 삭제 또는 업데이트할 수 있습니다. 보류 중인 예약이 새 사용 가능 슬롯 용량을 초과하면 해당 슬롯에 대한 모든 예약이 제거됩니다.

서버에 연결하기

플레이어가 적절한 인스턴스를 찾으면, 그들은 메타데이터에서 필요한 연결 세부정보를 가져올 수 있습니다 (URL, IP, 외부 포트). 좌석 예약이 이루어지는 즉시, 플레이어는 배포된 게임 서버에 연결하고 자신의 플레이어 ID를 전달할 수 있습니다.

하려면 PIE(에디터)에서 연결하려면 개발 및 테스트 중에는 물결표(틸드) 키를 누르고 ~ 그리고 입력하세요 open {URL}:{port} 그리고 에디터가 맵을 로드할 때까지 기다리세요.

circle-check

새 연결을 인증하려면, 서버는 모든 신규 플레이어 ID를 포함한 일괄 예약 확인 요청을 보내야 하며, 확인 응답에서 다음 정보를 받습니다:

  • 수락된 플레이어 예약의 선호 슬롯 할당,

  • 만료된 플레이어 예약의 선호 슬롯 할당,

  • 알 수 없는 플레이어 ID 목록.

귀하의 서버는 각 플레이어 그룹을 어떻게 처리할지 결정할 수 있습니다 만료되거나 거부된 사용자를 허용하거나 퇴장/차단할지 여부를 포함하여. 각 인스턴스의 슬롯은 새 사용 가능 좌석 수로 즉시 업데이트되어야 합니다 새 예약이 용량을 초과하지 않도록 하기 위해.

서버 포기(Abandon Server)

플레이어가 떠날 때 서버는 할당된 슬롯을 업데이트하여 새 사용 가능 좌석 수를 반영해야 합니다.

circle-check

호스팅 비용을 최적화하려면 플레이어가 없는 서버는 중지하는 것을 권장합니다. 몇 분간 기다렸다가 중지하면 짧은 유휴 기간 동안 재시작 횟수를 줄일 수 있습니다.

다음을 읽어보세요 영속성 답답한 영구 서버 롤백을 방지하기 위해.

⚙️ 구성

서버 브라우저 API는 새 서버 브라우저를 생성(또는 빠른 재시작)할 때 지정된 JSON 구성에서 생성됩니다. 서버 및 슬롯 만료 시간과 커스텀 메타데이터를 지정할 수 있습니다:

chevron-right🍀 간단한 예시hashtag
circle-info

최적의 성능을 위해 필터링 또는 정렬에 사용되지 않는 메타데이터에 대해 인덱스를 지정하지 마세요. 비인덱스 매개변수는 여전히 서버 인스턴스 또는 슬롯 세부정보 API 메서드로 설정하고 읽을 수 있습니다, 자세한 내용은 📗 API.

☁️ 호스팅 클러스터

서버 브라우저는 Edgegap에서 24시간 연중무휴로 편리하게 호스팅 및 관리됩니다.

목표에 가장 적합한 호스팅 옵션을 선택하세요:

프라이빗 클러스터 티어

한 번의 클릭으로 프라이빗 클러스터로 업그레이드하여 Edgegap 팀이 유지 관리하는 고가용 호스팅과 공개 출시된 게임에 대한 24/7 라이브 지원 혜택을 누리세요.

인스턴스에 필요한 리소스는 다음 요소에 따라 달라집니다:

  • 플레이어 수 - 플레이어 수가 많을수록 API 요청이 더 많아집니다,

  • 플레이어당 요청 수 - 더 빠른 재시도는 서비스 부하를 증가시키고 리소스를 소비합니다,

  • 서버 수 - 서버 수가 많을수록 저장되는 데이터와 API 요청이 증가합니다,

  • 클라이언트 재시도 폴백 로직 - 지터가 있는 백오프로 재시도하면 트래픽 급증을 분산하는 데 도움이 됩니다,

  • 평균 매치 지속 시간 - 세션이 짧을수록 서버 브라우저 상호작용이 더 자주 필요합니다.

📗 API

게임 클라이언트와 전용 서버는 전체 수명주기 동안 서버 브라우저에 API 요청을 보냅니다.

API 명세를 가져오기 위해 Scalar API 웹 클라이언트arrow-up-right 또는 Swagger Editorarrow-up-right 세부사항을 검사하려면.

페이지네이션

서버 브라우저는 특정 순서로 필터링된 데이터를 점진적으로 가져오기 위해 커서 페이지네이션을 제공합니다. 이 접근 방식은 더 많은 결과를 가져올 때마다 커서(시작 지점)와 페이지 크기(응답 항목 수)를 보내야 하며, 전통적인 limit-offset 페이지네이션과는 다릅니다.

circle-info

게임 서버 메타데이터용으로 개발된 독자적인 데이터베이스 인덱싱 시스템과 결합된 커서 페이지네이션은 매우 동적인 데이터를 필터링할 때 빠르고 일관되며 유연한 사용자 경험을 제공합니다.

우리의 목표는 사용자가 첫 페이지에서 적합한 서버를 찾는 것입니다. 최상의 경험을 위해 이전 페이지의 캐시된 결과를 표시하고 사용자가 검색을 클릭할 때만 결과를 새로 고치도록 권장합니다.

🔖 변경 로그

circle-info

서버 브라우저의 최신 버전은 0.0.4 입니다. 업데이트 및 공지를 주시하세요.

0.0.4 (2026년 1월 05일)

0.0.3 (2025년 11월 28일)

  • 서버 브라우저 서비스의 초기 릴리스가 CLOSED BETA로 출시되었습니다.

  • 서버 목록 조회, 용량 관리 및 연결 세부정보 획득.

  • 클라우드 배포와 매치 세션 지원 및 프라이빗 플릿으로 항상 온라인 지원.

마지막 업데이트

도움이 되었나요?