GameAP Daemon спецификация
Устаревная страница документации
Спецификация по компонентам сервера GameAP Daemon. Каждый из компонентов далее будет именоваться как сервер.
Командный сервер
Позволяет выполнять различные команды, включая команды операционной системы
Запрос
Первый элемент в списке Binn строки должен содержать код команды. Второй элеметр должен содержать выполняемую команду. Третий элемент должен содержать путь к рабочему каталогу.
Например:
| Тип | Значение/Пример | Описание |
|---|---|---|
| uint8 | 1 | Код выполнения команды ОС |
| string | whoami | Команда |
| string | /srv/gameap | Рабочий каталог |
Ответ
В ответе содержитс код выполнения команды GameAP Daemon, код выполнения команды ОС (exit code) и результат выполнения команды.
Ответ с данными
| Тип | Описание |
|---|---|
| uint | Код |
| int32 | Код результата выполнения команды (exit status) |
| string | Результат выполнения команды |
Коды ответов демона
| Код | Описание |
|---|---|
| 1 | Общая ошибка |
| 2 | Критическая ошибка |
| 3 | Неизвестная команда |
| 100 | Успешное выполнение команды |
Файловый сервер
Сервер обменивается с клиентом данными Binn List
Запрос
Первый элемент в списке Binn строки должен содержать код команды (чтение директории, удаление файла и т.п.).
Например, чтение каталога:
| Тип | Значение/Пример | Описание |
|---|---|---|
| uint8 | 4 | Код чтения директории |
| string | /home/gameap | Каталог |
| string | /home/gameap | Каталог |
| uint8 | 1 | Режим чтения (0 - только список файлов/директорий, 1 - подробный список с информацией о размере файлов, даты модификации и пр.) |
Ответ
Простой ответ
Простой ответ сервера содержит код (100 в случае успеха) и сообщение.
| Тип | Описание |
|---|---|
| uint | Код |
| string | Сообщение |
Ответ с данными
Ответ с данными, например списоком файлов в директории.
| Тип | Описание |
|---|---|
| uint | Код |
| string | Сообщение |
| mixed | Данные |
Коды ответов
| Код | Описание |
|---|---|
| 1 | Общая ошибка |
| 2 | Критическая ошибка |
| 3 | Неизвестная команда |
| 100 | Успешное выполнение команды |
| 101 | Готовность к отправке/получению файла |
Скачивание/загрузка файлов
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код | 3 |
| uint8 | Режим (1 - скачивание с сервера, 2 - загрузка на сервер) | 1 |
| string | Файл | /home/gameap/file.txt |
Ответ
При отправке файла, сервер вернёт вам простой ответ с результатами выполнения команды. После успешного ответа сервер будет готов для отправки/получения файла.
При получении файла, сервер вернёт ответ
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код | 101 |
| string | Сообщение | “File sending ready” |
| uint64 | Размер файла (байт) | 282345 |
Листинг файлов в каталоге
Получение списка файлов в директории. Есть несколько режимов чтения – простой, получение только списка файлов/директорий и подробный с получением данных о размере файлов, даты модификации и т.д.
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код чтения каталога | 4 |
| string | Каталог | /home/gameap |
| uint8 | Режим (0 - простой, 1 - подробный) | 1 |
Ответ
Массив с данными
| Тип | Описание |
|---|---|
| string | Имя файла |
| uint64 | Размер файла (байт) |
| uint64 | Дата модификации (timestamp) |
| uint8 | Тип (1 - каталог, 2 - файл, символическая ссылка, socket, pipe) |
| uint16 | Привилегии. В числовом виде (например 755) |
Создание каталога
Создать новый каталог
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код чтения каталога | 5 |
| string | Каталог | /home/gameap/new_dir |
Ответ
Сервер вернёт вам простой ответ с результатами выполнения команды.
Перемещение/копирование
Перемещение или копирование каталога/директории
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код | 6 |
| string | Текущий путь | /home/gameap/old_file.txt |
| string | Новый путь | /home/gameap/new_file.txt |
| boolean | Копирование (true/false). Если false, то файл будет перемещён. Если true, то файл будет скопирован. |
true |
Ответ
Сервер вернёт простой ответ с результатами выполнения команды.
Удаление
Удаление файла/директории
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код | 7 |
| string | Путь к файлу, каталогу | /home/gameap/delete_file.txt |
| bool | Рекурсивное удаление каталога | false |
Ответ
Сервер вернёт простой ответ с результатами выполнения команды.
Подробная информация о файле
Получение развёрнутой информации об одном файле (даты создания, даты модификации, даты последнего доступа, mime и прочего).
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код | 8 |
| string | Путь к файлу, каталогу | /home/gameap/file.txt |
Ответ
Ответ с данными
| Тип | Описание |
|---|---|
| string | Имя файла |
| uint64 | Размер файла (байт) |
| uint8 | Тип 1 - каталог; 2 - файл; 3 - character device; 4 - block device; 5 - named pipe; 6 - символическая ссылка; 7 - сокет; 0 - неизвестно |
| uint64 | Дата модификации (timestamp) |
| uint64 | Дата доступа (timestamp) |
| uint64 | Дата создания (timestamp) |
| uint16 | Привилегии |
| string | Mime |
Изменение привелегий
Изменение привилегий на файл
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код | 9 |
| string | Путь к файлу, каталогу | /home/gameap/file.txt |
| uint16 | Новые привилегии | 0755 |
Ответ
Сервер вернёт простой ответ с результатами выполнения команды.
Статус сервер
Позволяет получать различные сведения о работе демона, такие как: список ожидающих и выполняемых задач, список игровых серверов онлайн и т.д.
Запрос
Первый элемент в списке Binn строки должен содержать код команды.
Например:
| Тип | Значение/Пример | Описание |
|---|---|---|
| uint8 | 2 | Базовые сведения о работе демона |
Ответ
Ответ с данными
Ответ с данными, например списоком файлов в директории.
| Тип | Описание |
|---|---|
| uint | Код |
| string | Сообщение |
| … | Данные |
| … | Данные |
| … | Данные |
Коды ответов
| Код | Описание |
|---|---|
| 1 | Общая ошибка |
| 2 | Критическая ошибка |
| 3 | Неизвестная команда |
| 100 | Успешное выполнение команды |
Версия Daemon
Получение сведений о номере версии GameAP Daemon и дате компиляции.
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код | 1 |
Ответ
| Тип | Описание |
|---|---|
| uint | Код |
| string | Сообщение |
| string | Номер версии GameAP Daemon |
| string | Дата и время компиляции |
Базовые данные о работе
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код | 2 |
Ответ
| Тип | Описание |
|---|---|
| uint | Код |
| string | Сообщение |
| uint32 | Uptime GameAP Daemon |
| uint32 | Количество выполняющихся заданий |
| uint32 | Количество ожидающих заданий |
| uint32 | Количество работающих игровых серверов (онлайн) |
Подробные данные о работе
Запрос
| Тип | Описание | Значение/Пример |
|---|---|---|
| uint8 | Код | 3 |
Ответ
| Тип | Описание |
|---|---|
| uint | Код |
| string | Сообщение |
| uint32 | Uptime GameAP Daemon |
| list | Список ID выполняющихся заданий |
| list | Список ID ожидающих заданий |
| list | Список ID работающих игровых серверов (онлайн) |