JSONRPC

Наследует: Object

Помощник для работы со словарями, которые выглядят как документы JSONRPC.

Описание

JSON-RPC — это стандарт, который оборачивает вызов метода в объект JSON. Объект имеет определенную структуру и определяет, какой метод вызывается, параметры этой функции и несет идентификатор для отслеживания ответов. Этот класс реализует этот стандарт поверх Dictionary; вам придется преобразовывать между Dictionary и JSON с помощью других функций.

Методы

Dictionary

make_notification(method: String, params: Variant)

Dictionary

make_request(method: String, params: Variant, id: Variant)

Dictionary

make_response(result: Variant, id: Variant)

Dictionary

make_response_error(code: int, message: String, id: Variant = null) const

Variant

process_action(action: Variant, recurse: bool = false)

String

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: Функция обратного вызова, которая будет обрабатывать указанный метод.