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 работающих игровых серверов (онлайн)