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