Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
JSONRPC
Наследует: Object
Наследуется от: GDScriptLanguageProtocol
Помощник для работы со словарями, которые выглядят как документы JSONRPC.
Описание
JSON-RPC — это стандарт, который оборачивает вызов метода в объект JSON. Объект имеет определенную структуру и определяет, какой метод вызывается, параметры этой функции и несет идентификатор для отслеживания ответов. Этот класс реализует этот стандарт поверх Dictionary; вам придется преобразовывать между Dictionary и JSON с помощью других функций.
Методы
make_notification(method: String, params: Variant) |
|
make_request(method: String, params: Variant, id: Variant) |
|
make_response(result: Variant, id: Variant) |
|
make_response_error(code: int, message: String, id: Variant = null) const |
|
process_action(action: Variant, recurse: bool = false) |
|
process_string(action: String) |
|
void |
set_method(name: String, callback: Callable) |
Перечисления
enum ErrorCode: 🔗
ErrorCode PARSE_ERROR = -32700
Запрос не может быть проанализирован, так как он не соответствует стандарту JSON (JSON.parse() не выполнен).
ErrorCode INVALID_REQUEST = -32600
Был запрошен вызов метода, но формат запроса недопустим.
ErrorCode METHOD_NOT_FOUND = -32601
Был запрошен вызов метода, но в подклассе JSONRPC не существует функции с таким именем.
ErrorCode INVALID_PARAMS = -32602
Вызов метода был запрошен, но заданные параметры метода недействительны. Не используется встроенным JSONRPC.
ErrorCode INTERNAL_ERROR = -32603
Произошла внутренняя ошибка при обработке запроса. Не используется встроенным JSONRPC.
Описания метода
Dictionary make_notification(method: String, params: Variant) 🔗
Возвращает словарь в форме уведомления JSON-RPC. Уведомления — это одноразовые сообщения, не ожидающие ответа.
method: Имя вызываемого метода.params: Массив или словарь параметров, передаваемых методу.
Dictionary make_request(method: String, params: Variant, id: Variant) 🔗
Возвращает словарь в форме запроса JSON-RPC. Запросы отправляются на сервер с ожиданием ответа. Поле ID используется сервером для указания, на какой именно запрос он отвечает.
method: Имя вызываемого метода.params: Массив или словарь параметров, передаваемых методу.id: Уникально идентифицирует этот запрос. Ожидается, что сервер отправит ответ с тем же ID.
Dictionary make_response(result: Variant, id: Variant) 🔗
Когда сервер получил и обработал запрос, ожидается отправка ответа. Если вы не хотели ответа, то вместо этого вам нужно было отправить уведомление.
result: возвращаемое значение вызванной функции.id: идентификатор запроса, на который нацелен этот ответ.
Dictionary make_response_error(code: int, message: String, id: Variant = null) const 🔗
Создает ответ, который указывает, что предыдущий ответ по какой-то причине не удался.
code: Код ошибки, соответствующий типу ошибки. См. константы ErrorCode.message: Пользовательское сообщение об этой ошибке.id: Запрос, на который эта ошибка является ответом.
Variant process_action(action: Variant, recurse: bool = false) 🔗
Дан словарь, который принимает форму запроса JSON-RPC: распакуйте запрос и запустите его. Методы разрешаются путем просмотра поля с именем «method» и поиска эквивалентно названной функции в объекте JSONRPC. Если она найдена, этот метод вызывается.
Чтобы добавить новые поддерживаемые методы, расширьте класс JSONRPC и вызовите process_action() в вашем подклассе.
action: действие, которое должно быть запущено, как словарь в форме запроса или уведомления JSON-RPC.
String process_string(action: String) 🔗
There is currently no description for this method. Please help us by contributing one!
void set_method(name: String, callback: Callable) 🔗
Регистрирует функцию обратного вызова для указанного имени метода.
name: Имя, которое клиенты могут использовать для доступа к функции обратного вызова.callback: Функция обратного вызова, которая будет обрабатывать указанный метод.