ASCENMMO

Категории

Клиенты

Авторизация вашего пользователя Обновление токенов Получение данных клиента Обновление данных клиента Получение сохранений игры Сохранение данных игры Удаление данных игры

Ошибки

Ошибка при регистрации игры Ошибка при регистрации клиента Ошибка при авторизации клиента

Создание подключений

Создание комнаты Получение информации о своей комнате Получение всех комнат Присоединение к комнате по ID Присоединение к комнате по коду Удаление комнаты по ID Покинуть комнату Получение URL для подключения к серверам комнат

Ошибки

Срок действия токена истек Неверный идентификатор игры Нет доступных серверов для подключения Комната не найдена Доступ к комнате запрещен

Подключение к сервисам

Подключение по UDP Подключение по WebSocket Подключение по TCP

Ошибки

Истек срок действия токена Пользователь не найден Комната не найдена Комната уже существует Некорректное значение для комнаты Превышено количество запросов Сервер уведомлений не найден Недействительный сервер уведомлений Ошибка обработки данных пользователя Результаты игры не найдены

Авторизация вашего пользователя

Каждый пользователь должен быть авторизирован для получения уникального токена.Серверы не пропустят запрос, если токена нет или он неверный.Также в токен вшита информация об игре и игроке.

Document Structure Lists:

Регистрация

Регистрация нового пользователя в системе с указанием уникального email и пароля. После успешной регистрации возвращаются токены.

Путь запроса:
https://ascenmmo.com/api/v1/devToolsClient/signUp
Метод:
POST
Headers Запроса:
Content-Type: application/json
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "client": {
      "additional": {},
      "email": "string",
      "gameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "nickname": "string",
      "password": "string"
    }
  }
}
Описания тела запроса:

Поле 'email' должно быть уникальным. Если email используется повторно, возвращается ошибка. Дополнительную информацию можно передавать в формате JSON в поле 'additional'.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "refresh": "string",
    "token": "string"
  }
}
Описание тела ответа:

При успешной регистрации возвращаются два поля: 'token' и 'refresh'. Эти токены следует сохранить для последующего использования в заголовках запросов.

Авторизация

Авторизация пользователя с использованием email и пароля. После успешной авторизации возвращаются токены.

Путь запроса:
https://ascenmmo.com/api/v1/devToolsClient/signIn
Метод:
POST
Headers Запроса:
Content-Type: application/json
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "client": {
      "additional": {},
      "email": "string",
      "gameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "nickname": "string",
      "password": "string"
    }
  }
}
Описания тела запроса:

Передайте email и пароль для авторизации. В случае успеха вернутся токены.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "refresh": "string",
    "token": "string"
  }
}
Описание тела ответа:

Возвращаются 'token' и 'refresh', которые необходимо использовать для дальнейших запросов.

Обновление токенов

Данный метод используется для обновления токенов доступа и обновления. Необходимо передать текущие токены в заголовках запроса. В теле запроса нет дополнительных параметров.

Document Structure Lists:

Обновить токены

Запрос на обновление токенов доступа и обновления. Требуется токен и refresh токен в заголовках.

Путь запроса:
/api/v1/devToolsClient/refreshToken
Метод:
POST
Headers Запроса:
Token: ваш токен
RefreshToken: ваш refresh токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {}
}
Описания тела запроса:

В теле запроса нет дополнительных параметров, просто передайте пустой объект в 'params'.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "newRefresh": "string",
    "newToken": "string"
  }
}
Описание тела ответа:

В ответе возвращаются новые токены: 'newRefresh' и 'newToken'. Эти токены следует сохранить и использовать для дальнейших запросов.

Получение данных клиента

Этот метод используется для получения информации о клиенте на основе идентификатора игры (gameID). Запрос требует наличие токена в заголовке для авторизации. В ответе возвращаются данные клиента, такие как email, nickname, gameID, а также дополнительная информация.

Document Structure Lists:

Получить данные клиента

Запрос на получение информации о клиенте по его gameID. Запрос должен быть авторизован с помощью токена.

Путь запроса:
/api/v1/devToolsClient/getClient
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "gameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}
Описания тела запроса:

В теле запроса передается идентификатор игры (gameID). Необходимо указать токен в заголовке для авторизации запроса.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "client": {
      "additional": {},
      "email": "string",
      "gameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "nickname": "string",
    }
  }
}
Описание тела ответа:

В ответе возвращается объект клиента, который содержит email, gameID, nickname и дополнительную информацию в поле 'additional'.

Обновление данных клиента

Данный метод используется для обновления информации о клиенте. Необходимо передать токен в заголовке запроса и объект клиента в теле запроса. Объект клиента может включать новый пароль, если он требуется.

Document Structure Lists:

Обновить данные клиента

Запрос на обновление данных клиента. Требуется токен в заголовке и объект клиента в теле.

Путь запроса:
/api/v1/devToolsClient/updateClient
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "client": {
      "additional": {},
      "email": "string",
      "nickname": "string",
      "password": "string",
      "newPassword": "string"
    }
  }
}
Описания тела запроса:

В теле запроса передается объект клиента, который включает поля: - `additional`: дополнительная информация (может быть пустым объектом) - `email`: новый email клиента - `nickname`: новый nickname клиента - `password`: текущий пароль клиента (для проверки) - `newPassword`: новый пароль клиента (если требуется изменить).

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {}
}
Описание тела ответа:

При успешном обновлении возвращается объект, содержащий поля: - `id`: идентификатор запроса, который совпадает с тем, что был отправлен. - `jsonrpc`: версия JSON-RPC, которая также совпадает с той, что была отправлена. - `result`: пустой объект, подтверждающий успешное выполнение запроса. Этот объект указывает на то, что данные клиента были успешно обновлены.

Получение сохранений игры

Данный метод используется для получения сохранений игры. Необходимо передать токен в заголовке запроса и пустое тело запроса в формате JSON-RPC.

Document Structure Lists:

Получить сохранения игры

Запрос на получение сохранений игры. Требуется токен в заголовке и пустое тело запроса.

Путь запроса:
/api/v1/devToolsClient/getGameSaves
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {}
}
Описания тела запроса:

В теле запроса передается пустой объект `params` в формате JSON-RPC: - `id`: идентификатор запроса - `jsonrpc`: версия JSON-RPC - `params`: пустой объект

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "gameSaves": {
      "saves": {}
    }
  }
}
Описание тела ответа:

В случае успешного выполнения возвращается объект с полями: - `id`: идентификатор запроса, совпадающий с отправленным - `jsonrpc`: версия JSON-RPC - `result`: объект, содержащий сохранения игры - `gameSaves`: объект с данными сохранений

Сохранение данных игры

Данный метод используется для сохранения данных игры. Необходимо передать токен в заголовке запроса и объект с сохранениями в теле запроса.

Document Structure Lists:

Сохранить данные игры

Запрос на сохранение данных игры. Требуется токен в заголовке и объект с сохранениями в теле запроса.

Путь запроса:
/api/v1/devToolsClient/setGameSaves
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "gameSaves": {
      "saves": {
        "FirstSave": {"location": "loc1", "health": 100}
      }
    }
  }
}
Описания тела запроса:

В теле запроса передается объект `gameSaves`, который включает: - `saves`: объект с данными сохранений игры. Пример: - `FirstSave`: содержит сохранение с полями: - `location`: местоположение сохранения - `health`: состояние здоровья

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {}
}
Описание тела ответа:

При успешном выполнении запроса возвращается пустой объект `result`, указывающий на успешное сохранение данных.

Удаление данных игры

Данный метод используется для удаления данных сохранений игры. Необходимо передать токен в заголовке запроса и пустое тело запроса в формате JSON-RPC.

Document Structure Lists:

Удалить данные сохранений игры

Запрос на удаление сохранений игры. Требуется токен в заголовке и пустое тело запроса.

Путь запроса:
/api/v1/devToolsClient/deleteGameSaves
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {}
}
Описания тела запроса:

В теле запроса передается пустой объект `params` в формате JSON-RPC: - `id`: идентификатор запроса - `jsonrpc`: версия JSON-RPC - `params`: пустой объект

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {}
}
Описание тела ответа:

При успешном выполнении запроса возвращается пустой объект `result`, который подтверждает, что сохранения были удалены.

Ошибка при регистрации игры

Игра с таким ID не найдена. Проверьте введенный идентификатор игры и попробуйте снова.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "error game not found"
    }
}

Ошибка при регистрации клиента

Клиент с таким именем уже существует. Пожалуйста, используйте другое имя.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "error creating client"
    }
}

Ошибка при авторизации клиента

Клиент с таким идентификатором не найден. Проверьте правильность данных для входа и повторите попытку.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "error client not found"
    }
}

Создание комнаты

Этот метод используется для создания новой комнаты в игре. Запрос требует наличие токена в заголовке для авторизации. В ответе возвращается новый токен, который может быть использован для последующих запросов.

Document Structure Lists:

Создать комнату

Запрос на создание новой комнаты для игры. Запрос должен быть авторизован с помощью токена.

Путь запроса:
/api/v1/devToolsConnections/createRoom
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "name": "string"
  }
}
Описания тела запроса:

В теле запроса передается имя комнаты (name). Необходимо указать токен в заголовке для авторизации запроса.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "newToken": "string"
  }
}
Описание тела ответа:

В ответе возвращается новый токен, который может быть использован для последующих запросов.

Получение информации о своей комнате

Этот метод используется для получения информации о комнате текущего пользователя. Запрос требует наличие токена в заголовке для авторизации. В ответе возвращаются данные комнаты, включая информацию о соединениях, времени создания, серверах и другие параметры.

Document Structure Lists:

Получить свою комнату

Запрос на получение информации о комнате текущего пользователя. Запрос должен быть авторизован с помощью токена.

Путь запроса:
/api/v1/devToolsConnections/getMyRoom
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {}
}
Описания тела запроса:

Тело запроса пустое, так как данные извлекаются для текущего авторизованного пользователя. Необходимо указать токен в заголовке для авторизации запроса.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "connections": [
      "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    ],
    "created_at": 0,
    "creator_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "gameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "name": "string",
    "servers": [
      "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    ]
  }
}
Описание тела ответа:

В ответе возвращаются данные комнаты, включая идентификаторы, имя, информацию о соединениях, времени создания и серверах.

Получение всех комнат

Этот метод используется для получения информации о всех комнатах в системе. Запрос требует наличие токена в заголовке для авторизации. В ответе возвращается список всех доступных комнат с их данными.

Document Structure Lists:

Получить все комнаты

Запрос на получение информации о всех комнатах в системе. Запрос должен быть авторизован с помощью токена.

Путь запроса:
/api/v1/devToolsConnections/getRoomsAll
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {}
}
Описания тела запроса:

Тело запроса пустое, так как данные извлекаются без необходимости указания дополнительных параметров. Необходимо указать токен в заголовке для авторизации запроса.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "rooms": [
      {
        "connections": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ],
        "createdAt": 0,
        "creatorID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "existsServers": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ],
        "gameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "isExists": true,
        "name": "string",
        "roomCode": "string",
        "servers": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    ]
  }
}
Описание тела ответа:

В ответе возвращается массив объектов, каждый из которых представляет комнату. Поля комнаты включают идентификаторы, имя, код комнаты (roomCode), информацию о соединениях, серверах и статусе существования.

Присоединение к комнате по ID

Этот метод используется для присоединения к комнате на основе ее идентификатора. Запрос требует наличие токена в заголовке для авторизации. В ответе возвращается новый токен, содержащий информацию о комнате.

Document Structure Lists:

Присоединиться к комнате

Запрос на присоединение к комнате по ее идентификатору. Запрос должен быть авторизован с помощью токена.

Путь запроса:
/api/v1/devToolsConnections/joinRoomByID
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "roomID": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}
Описания тела запроса:

В теле запроса передается идентификатор комнаты (roomID). Необходимо указать токен в заголовке для авторизации запроса.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "newToken": "string"
  }
}
Описание тела ответа:

В ответе возвращается новый токен, который содержит информацию о комнате и подключенном клиенте.

Присоединение к комнате по коду

Этот метод используется для присоединения к комнате на основе ее кода. Запрос требует наличие токена в заголовке для авторизации. В ответе возвращается новый токен, содержащий информацию о комнате.

Document Structure Lists:

Присоединиться к комнате по коду

Запрос на присоединение к комнате по ее уникальному коду. Запрос должен быть авторизован с помощью токена.

Путь запроса:
/api/v1/devToolsConnections/joinRoomByRoomCode
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "roomCode": "string"
  }
}
Описания тела запроса:

В теле запроса передается уникальный код комнаты (roomCode). Необходимо указать токен в заголовке для авторизации запроса.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "newToken": "string"
  }
}
Описание тела ответа:

В ответе возвращается новый токен, который содержит информацию о комнате и подключенном клиенте.

Удаление комнаты по ID

Этот метод используется для удаления комнаты по ее идентификатору. Удаление может быть выполнено только создателем комнаты. Запрос требует наличие токена в заголовке для авторизации.

Document Structure Lists:

Удалить комнату

Запрос на удаление комнаты по ее идентификатору. Удаление доступно только для создателя комнаты и требует авторизации с помощью токена.

Путь запроса:
/api/v1/devToolsConnections/removeRoomByID
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "roomID": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}
Описания тела запроса:

В теле запроса передается идентификатор комнаты (roomID), которую необходимо удалить. Необходимо указать токен в заголовке для авторизации запроса.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {}
}
Описание тела ответа:

В ответе не возвращаются данные, что подтверждает успешное выполнение операции удаления.

Покинуть комнату

Этот метод используется для выхода из указанной комнаты. Запрос требует наличие токена в заголовке для авторизации.

Document Structure Lists:

Покинуть комнату

Запрос на выход из комнаты по ее идентификатору. Запрос должен быть авторизован с помощью токена.

Путь запроса:
/api/v1/devToolsConnections/leaveRoom
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "roomID": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}
Описания тела запроса:

В теле запроса передается идентификатор комнаты (roomID), которую необходимо покинуть. Необходимо указать токен в заголовке для авторизации запроса.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {}
}
Описание тела ответа:

В ответе возвращается пустой объект, подтверждающий успешный выход из комнаты.

Получение URL для подключения к серверам комнат

Этот метод используется для получения адресов подключения пользователей к серверам после создания комнаты. Сервер распределяет пользователей по серверам и возвращает адреса подключения. Запрос не требует дополнительных параметров, но требует наличие токена в заголовке для авторизации.

Document Structure Lists:

Получить URL для подключения

Запрос на получение адресов подключения к серверам, куда будут распределены пользователи созданной комнаты. Этот метод аналогичен балансировке нагрузки между серверами.

Путь запроса:
/api/v1/devToolsConnections/getRoomsConnectionUrls
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {}
}
Описания тела запроса:

В теле запроса не требуется передавать параметры, но необходимо указать токен в заголовке для авторизации.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "connectionsServer": [
      {
        "address": "string",
        "connectionPort": "string",
        "fullURL": "string",
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "isExists": true,
        "path": "string",
        "serverType": "string"
      }
    ]
  }
}
Описание тела ответа:

В ответе возвращается массив объектов `connectionsServer`. Каждый объект содержит: - `address`: адрес подключения - `connectionPort`: порт подключения - `fullURL`: полный URL подключения - `id`: уникальный идентификатор сервера - `isExists`: статус доступности сервера - `path`: путь подключения - `serverType`: тип сервера (udp, tcp, websocket).

Срок действия токена истек

Токен больше не активен. Пожалуйста, обновите токен через ручку /api/v1/devToolsClient/refreshToken или обратитесь к разделу 'Клиенты' для инструкций.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "token is expired by 215h25m2s"
    }
}

Неверный идентификатор игры

Игра с указанным ID не найдена. Убедитесь, что вы ввели правильный gameID, и повторите попытку.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "error game not found"
    }
}

Нет доступных серверов для подключения

Для создания комнаты нет активных серверов. Пожалуйста, активируйте нужные серверы в админке и повторите попытку.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "error creating room all servers off"
    }
}

Комната не найдена

Запрашиваемая комната не существует. Возможно, она была удалена или не была создана. Проверьте корректность ID комнаты и повторите запрос.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "room not found"
    }
}

Доступ к комнате запрещен

Вы не имеете доступа к этой комнате. Убедитесь, что вы являетесь участником комнаты, чтобы получить к ней доступ.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "access denied"
    }
}

Подключение по UDP

Этот сервис предназначен для передачи небольших данных в режиме реального времени. Если ваши клиенты хотят получать данные максимально быстро, а скорость важнее, чем гарантированная доставка, то этот сервис подходит идеально. UDP — это очень быстрое решение, однако, есть недостатки: некоторые пакеты могут быть потеряны или доставлены не по порядку.

Document Structure Lists:

Этап подключения

Для подключения к сервису необходимо знать IP-адрес и порт.Максимальное количество сообщений в секунду — 200. Так же нужно дождаться от сервреа ответа в виде id вашего клиента, UserID в ответе является подтверждением что подключение аутентифицированное.Пример команды подключения

Путь запроса:
udp://ascenmmo.com:4500
Метод:
udp write
Headers Запроса:

    
Тело запроса:
eyJhbGciOiJIUz11NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MzA3NjA4ODYsIkluZm8iOnsiZ2FtZV9pZCI61jJhZDIyNDNhLThhN2UtMzkzMC1iNjEzLTg5YzY2NDk2YWFjZCIsInJvb21faWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJ1c2VyX2lkIjoiN2RkZmNiNzEtOWQ3OC0zMTczLWExNGQtNDVjZTc1ODIyNmM3IiwidHRsIjo5MDAwMDAwMDAwMDB9fQ.wmq1VH88zlws_tSAdvJjfXcdcoaxL8vT8W9gsRZrw_o$_$j
Описания тела запроса:

Нужно отправить string без всякой обвертки несколько раз пока от сервера не вернется userID. Сервер должен понять что ваше подключение является валидным, иначе вы не являетесь подключенным пользователем.

Тело ответа:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Описание тела ответа:

Запустите Этап чтения. Прежде чем переходить к этапу отправки вам должен вернуться userID это является подтверждением что ваше соединение аутентифицированное

Этап чтения

Используйте тот же канал подключения, не нужно создавать новый. Канал подключения на этапе чтения и отправки должен быть один.Команда чтения

Путь запроса:
udp://ascenmmo.com:4500
Метод:
udp read
Headers Запроса:

    
Тело запроса:
Пренадлежит этапу отправки, при поралельном чтении не требует отправки данных'
Описания тела запроса:

Тут мы должны слушать ответ

Тело ответа:
data1 data2 data2   или   dat data2 d$#3 dt9   или  data
Описание тела ответа:

ответ может содержать как одно сообщение так и несколько, udp не гарантирует целосность сообщений и их порядок. Сервер работает по схеме рассылки при получении одного сообщения от ПервогоКлиента от дублирует Второму и Третьему сообщение.

Этап отправки

Используйте тот же канал подключения, не нужно создавать новый. Канал подключения на этапе чтения и отправки должен быть один.Так как в первом этапе вы аутентифицировались на сервере вы можете отослать пакетПример команды отправки

Путь запроса:
udp://ascenmmo.com:4500
Метод:
udp write
Headers Запроса:

    
Тело запроса:
клиент 1 отправил сообщение 101, или он отправил json {"name": "MyUser1"}
Описания тела запроса:

сервер работате только с даными []byte. Массив байт распределяется по всем клиентам

Тело ответа:
клиент 2 отправил сообщение 15, или он отправил json {"name": "MyUser2"} клиент 3 отправил сообщение 53, или он отправил json {"name": "MyUser3"}
Описание тела ответа:

ответ может содержать как одно сообщение так и несколько, udp не гарантирует целосность сообщений и их порядок. Если сообщения идут нечитаемые, поиграйтесь с времеными рамками отправителя сообщений. Сервер не валидирует сообщения и не дробит их, а рассылает всем как есть.

Подключение по WebSocket

Этот WebSocket-сервис разработан специально для многопользовательских онлайн игр, обеспечивая передачу данных в режиме реального времени между клиентами. С его помощью можно быстро и эффективно обмениваться игровыми данными, что особенно важно в условиях, где скорость имеет приоритет над надёжностью доставки сообщений. WebSocket поддерживает двустороннюю связь между клиентом и сервером, что делает его отличным выбором для игровых клиентов. Однако следует учитывать, что возможны потери пакетов или их получение в неправильном порядке.

Document Structure Lists:

Отправка и приём сообщений

Для подключения к игровому WebSocket-сервису вам нужно знать URL и использовать токен для аутентификации. Максимальное количество запросов в секунду — 200.Пример команды для подключения и отправки игрового сообщения через WebSocket:

Путь запроса:
ws://127.0.0.1:4240/api/ws/connect
Метод:
ws
Headers Запроса:
Token: ваш токен
Тело запроса:
{
	"data": "данные для отправки"
}
Описания тела запроса:

Тело запроса должно содержать игровую информацию, отправляемую другим игрокам. Токен для аутентификации передается в заголовке.

Тело ответа:
{
	"data": "данные от других клиентов"
}
Описание тела ответа:

Ответ содержит данные, полученные от других игровых клиентов, подключённых к той же игровой комнате.

Подключение по TCP

Этот сервис предназначен для взаимодействия между игровыми клиентами и сервером через TCP соединение. С его помощью клиенты могут отправлять сообщения, получать новые сообщения и удалять пользователей. Сервис поддерживает до **10 запросов в секунду** и идеально подходит для игровых приложений, где требуется высокая скорость взаимодействия и поддержка лонгпулинга для получения новых сообщений.

Document Structure Lists:

Отправка сообщений

Для отправки сообщения от клиента на сервер используйте следующую ручку. Необходимо передать токен в заголовке запроса.

Путь запроса:
/api/v1/rest/gameConnections/setSendMessage
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "message": {
      "data": "ваши данные",
      "server": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "token": "ваш токен"
    }
  }
}
Описания тела запроса:

Тело запроса должно содержать данные сообщения, идентификатор сервера и токен для аутентификации.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {}
}
Описание тела ответа:

Ответ указывает на успешное выполнение операции.

Получение новых сообщений

Для получения новых сообщений с сервера используйте следующую ручку. Можно использовать лонгпулинг.

Путь запроса:
/api/v1/rest/gameConnections/getMessage
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {}
}
Описания тела запроса:

Тело запроса не требует параметров, необходимо только указать токен в заголовке.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "messages": {
      "dataArray": [
        "новое сообщение"
      ]
    }
  }
}
Описание тела ответа:

Ответ содержит массив новых сообщений от сервера.

Удаление пользователя

Для удаления пользователя из игрового сервера используйте следующую ручку.

Путь запроса:
/api/v1/rest/gameConnections/removeUser
Метод:
POST
Headers Запроса:
Token: ваш токен
Тело запроса:
{
  "id": 1,
  "jsonrpc": "2.0",
  "params": {
    "userID": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}
Описания тела запроса:

Тело запроса должно содержать уникальный идентификатор пользователя, которого необходимо удалить.

Тело ответа:
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {}
}
Описание тела ответа:

Ответ указывает на успешное выполнение операции.

Истек срок действия токена

Ваш токен больше не действителен. Пожалуйста, обновите его через /api/v1/devToolsClient/refreshToken или обратитесь к разделу 'Клиенты' для инструкций.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "token is expired by 215h25m2s"
    }
}

Пользователь не найден

Система не обнаружила указанного пользователя. Убедитесь, что вы ввели правильные данные и попробуйте снова.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "user not found"
    }
}

Комната не найдена

Система не обнаружила запрашиваемую комнату. Проверьте идентификатор комнаты и попробуйте снова.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "room not found"
    }
}

Комната уже существует

Попытка создать комнату, которая уже есть в системе. Проверьте настройки и повторите запрос.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "room is exists"
    }
}

Некорректное значение для комнаты

Введенное значение для комнаты недопустимо. Проверьте данные и попробуйте снова.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "room bad value"
    }
}

Превышено количество запросов

Отправлено слишком много запросов. Подождите некоторое время и попробуйте снова.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "too many connection", "message": "too many requests"
   }
}

Сервер уведомлений не найден

Не удалось найти указанный сервер уведомлений. Проверьте настройки сервера и повторите попытку.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "err notify server not found"
    }
}

Недействительный сервер уведомлений

Указанный сервер уведомлений недействителен. Проверьте его конфигурацию и попробуйте снова.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "err notify server not valid"
    }
}

Ошибка обработки данных пользователя

Произошла ошибка при обработке данных пользователя в конфигурации игры. Проверьте данные и попробуйте снова.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "err game config marshal user data"
    }
}

Результаты игры не найдены

Система не обнаружила результаты для указанной игры. Убедитесь, что игра завершена, и повторите запрос.

Тело ответа:
{
    "id": 1,
    "jsonrpc": "2.0",
    "error": {
        "message": "game results not found"
    }
}