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.

JSONRPC

Успадковує: Object

Успадковано від: GDScriptLanguageProtocol

Допоможець для обробки словників, які виглядають як 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: Унікально ідентифікує цей запит. Очікується, що сервер надішле відповідь з тим самим ідентифікатором.


Dictionary make_response(result: Variant, id: Variant) 🔗

Коли сервер отримав і обробляє запит, він очікується надсилати відповідь. Якщо ви не бажаєте відповіді, то вам потрібно надіслати повідомлення замість цього.

  • result: Повернення значення функції, яка була викликана.

  • id: Ідентифікатор запиту на цю відповідь.


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

Створює відповідь, яка вказує на попередню відповідь

  • code: Код помилки, що відповідає за те, що таке помилка. Побачити повідомлення

  • message: Користувальницьке повідомлення про цю помилку.

  • id: Ця помилка є відповідь.


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

З урахуванням словника, який приймає форму запиту JSON-RPC: розпакувати запит і запустити його. Методи вирішуються, дивлячись на поле, що називається "метод" і шукаючи еквівалентно названу функцію в об'єкті JSONRPC. Якщо один знайдений метод називається.

Щоб додати нові підтримані методи, подовжуйте клас JSONRPC і зателефонуйте _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: Зворотний виклик, який оброблятиме вказаний метод.