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