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

Hereda: Object

Heredado por: GDScriptLanguageProtocol

Un asistente para manejar diccionarios que parecen documentos JSONRPC.

Descripción

JSON-RPC es un estándar que envuelve una llamada a un método en un objeto JSON. El objeto tiene una estructura particular e identifica qué método se llama, los parámetros de esa función, y lleva un ID para realizar un seguimiento de las respuestas. Esta clase implementa ese estándar sobre Dictionary; tendrás que convertir entre un Dictionary y JSON con otras funciones.

Métodos

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)


Enumeraciones

enum ErrorCode: 🔗

ErrorCode PARSE_ERROR = -32700

La solicitud no pudo ser analizada ya que no era válida según el estándar JSON (falló JSON.parse()).

ErrorCode INVALID_REQUEST = -32600

Se solicitó una llamada a un método, pero el formato de la solicitud no es válido.

ErrorCode METHOD_NOT_FOUND = -32601

Se solicitó una llamada a un método, pero no existía ninguna función con ese nombre en la subclase JSONRPC.

ErrorCode INVALID_PARAMS = -32602

Se solicitó una llamada a un método, pero los parámetros del método dado no son válidos. No utilizado por el JSONRPC incorporado.

ErrorCode INTERNAL_ERROR = -32603

Ocurrió un error interno al procesar la solicitud. No utilizado por el JSONRPC incorporado.


Descripciones de Métodos

Dictionary make_notification(method: String, params: Variant) 🔗

Devuelve un diccionario en forma de notificación JSON-RPC. Las notificaciones son mensajes de una sola vez que no esperan una respuesta.

  • method: Nombre del método que se está llamando.

  • params: Un array o diccionario de parámetros que se pasan al método.


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

Devuelve un diccionario en forma de solicitud JSON-RPC. Las solicitudes se envían a un servidor con la expectativa de una respuesta. El campo ID se utiliza para que el servidor especifique a qué solicitud exacta está respondiendo.

  • method: Nombre del método que se está llamando.

  • params: Un array o diccionario de parámetros que se pasan al método.

  • id: Identifica de forma única esta solicitud. Se espera que el servidor envíe una respuesta con el mismo ID.


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

Cuando un servidor ha recibido y procesado una solicitud, se espera que envíe una respuesta. Si no querías una respuesta, entonces necesitas haber enviado una Notificación en su lugar.

  • result: El valor de retorno de la función que fue llamada.

  • id: El ID de la solicitud a la que se dirige esta respuesta.


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

Crea una respuesta que indica que una respuesta anterior ha fallado de alguna manera.

  • code: El código de error que corresponde al tipo de error. Véanse las constantes ErrorCode.

  • message: Un mensaje personalizado sobre este error.

  • id: La solicitud a la que este error es una respuesta.


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

Dado un Dictionary con formato de solicitud JSON-RPC: desempaca la solicitud y ejecútala. Los métodos se resuelven buscando el campo llamado "method" y buscando una función con un nombre equivalente en el objeto JSONRPC. Si se encuentra una, se llama a ese método.

Para añadir nuevos métodos compatibles, extiende la clase JSONRPC y llama a process_action() en tu subclase.

action: La acción a ejecutar, como un Dictionary con formato de solicitud o notificación 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) 🔗

Registra una callback para el nombre de método dado.

  • name: El nombre que los clientes pueden usar para acceder al callback.

  • callback: El callback que manejará el método específico.