> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/ru/docs/tools-and-integrations/unreal-eos-lobby-integration.md).

# Интеграция лобби EOS

Интегрируйте Edgegap с лобби Epic Online Services в проекте Unreal Engine, чтобы размещать сгруппированных игроков на игровых серверах.

Это руководство покажет вам, как интегрировать Edgegap для работы с лобби EOS в вашем игровом проекте Unreal. Для некоторых шагов потребуется отправлять запросы к нашему API с использованием токена, а `curl` команды, приведённые ниже, позволят вам просмотреть каждый из их ответов, чтобы вы могли определить, как обрабатывать их в своём коде. При использовании токена в запросах обязательно сохраняйте `токен` ключевое слово.

{% hint style="success" %}
**Мы рекомендуем начать с** [Unreal Engine](/ru/unreal-engine.md) **руководства по созданию игровых серверов, прежде чем продолжать.**
{% endhint %}

{% hint style="warning" %}
В целях безопасности не рекомендуется, чтобы владелец лобби EOS напрямую отправлял запросы к API Edgegap в рабочей среде, поскольку клиент получит доступ к API-токену. Вместо этого следует использовать отдельный сервис для управления этими запросами.
{% endhint %}

### 1. Получите и сохраните публичный IP-адрес игроков

Для начала каждому игроку, присоединившемуся к лобби, включая владельца лобби, нужно получить свой публичный IP-адрес и сохранить его как [свойство участника лобби](https://dev.epicgames.com/docs/game-services/lobbies#lobby-and-lobby-member-properties).

```
curl --location --request GET 'https://api.edgegap.com/v1/ip' \
--header 'Authorization: [EDGEGAP_API_TOKEN]'
```

### 2. Создайте развёртывание

Когда владелец лобби решит, что матч готов к началу, необходимо отправить запрос на создание нового развёртывания на Edgegap, используя сохранённые публичные IP-адреса.

```
curl --location --request POST 'https://api.edgegap.com/v1/deploy' \
--header 'Content-Type: application/json' \
--header 'Authorization: [EDGEGAP_API_TOKEN]' \
--data-raw '{
    "app_name": "[EDGEGAP_APP_NAME]",
    "version_name": "[EDGEGAP_APP_VERSION]",
    "ip_list": [
        "[LOBBY_MEMBER_IP]"
    ]
}'
```

После этого владельцу лобби нужно будет продолжать опрашивать состояние развёртывания, используя request\_id, указанный в ответе на запрос создания развёртывания. Как только в ответе у развёртывания `current_status` установлено в `READY`, владельцу лобби нужно будет установить значения IP и порта развёртывания как [свойства лобби EOS](https://dev.epicgames.com/docs/game-services/lobbies#lobby-and-lobby-member-properties).

```
curl --location --request GET 'https://api.edgegap.com/v1/status/[REQUEST_ID]' \
--header 'Authorization: [EDGEGAP_API_TOKEN]'
```

### 3. Подключитесь к развёртыванию

Когда игроки получат уведомление о том, что значения IP и порта были назначены, они смогут сравнить их с клиентским кэшем, а затем использовать их для подключения к серверу, чтобы сыграть матч.

### 4. Завершите матч и развёртывание

После завершения матча владелец лобби снимет значения IP и порта из свойств лобби EOS, что уведомит всех остальных о необходимости корректно отключиться от сервера. Если у приложения настроена инъекция переменных окружения, их можно будет использовать для завершения развёртывания изнутри в этот момент.

Чтобы завершить развёртывание извне сервера, можно использовать запрос, такой как `curl` команда, показанная ниже, вместо этого может быть использована.

```
curl --location --request DELETE 'https://api.edgegap.com/v1/stop/[REQUEST_ID]' \
--header 'Authorization: [EDGEGAP_API_TOKEN]'
```

Если игроки остаются в лобби, владелец лобби затем может повторить шаги, начиная с запроса нового развёртывания, чтобы начать реванш с теми же людьми.
