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

Eredita: Object

Ereditato da: GDScriptLanguageProtocol

Una classe di supporto per gestire dizionari che hanno l'aspetto di documenti JSONRPC.

Descrizione

JSON-RPC è uno standard che racchiude una chiamata di metodo in un oggetto JSON. L'oggetto ha una struttura particolare e identifica quale metodo viene chiamato e con quali parametri, e contiene un ID per tenere traccia delle risposte. Questa classe implementa quello standard su Dictionary; sarà necessario convertire tra un Dictionary e JSON con altre funzioni.

Metodi

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)


Enumerazioni

enum ErrorCode: 🔗

ErrorCode PARSE_ERROR = -32700

La richiesta non può essere elaborata perché non è valida secondo lo standard JSON (JSON.parse() non riuscito).

ErrorCode INVALID_REQUEST = -32600

È stata richiesta una chiamata a un metodo, ma il formato della richiesta non è valido.

ErrorCode METHOD_NOT_FOUND = -32601

È stata richiesta una chiamata a un metodo, ma non esisteva alcuna funzione con quel nome nella sottoclasse JSONRPC.

ErrorCode INVALID_PARAMS = -32602

È stata richiesta una chiamata a un metodo, ma i parametri specificati del metodo non sono validi. Non utilizzato dal JSONRPC integrato.

ErrorCode INTERNAL_ERROR = -32603

Si è verificato un errore interno durante l'elaborazione della richiesta. Non utilizzato dal JSONRPC integrato.


Descrizioni dei metodi

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

Restituisce un dizionario sotto forma di notifica JSON-RPC. Le notifiche sono messaggi a colpo singolo che non prevedono una risposta.

  • method: Nome del metodo richiamato.

  • params: Array o dizionario di parametri passati al metodo.


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

Restituisce un dizionario sotto forma di richiesta JSON-RPC. Le richieste vengono inviate a un server con l'aspettativa di una risposta. Il campo ID è utilizzato dal server per specificare a quale richiesta esatta sta rispondendo.

  • method: Nome del metodo chiamato.

  • params: Un array o dizionario di parametri passati al metodo.

  • id: Identifica questa richiesta in modo univoco. Il server deve inviare una risposta con lo stesso ID.


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

Quando un server ha ricevuto ed elaborato una richiesta, ci si aspetta che invii una risposta. Se non si desiderava una risposta, è necessario inviare una notifica.

  • result: il valore restituito dalla funzione che è stata chiamata.

  • id: l'ID della richiesta a cui è indirizzata questa risposta.


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

Crea una risposta che indica che una risposta precedente non è riuscita in qualche modo.

  • code: Il codice di errore che corrisponde al tipo di errore. Vedi le costanti di ErrorCode.

  • message: Un messaggio personalizzato su questo errore.

  • id: La richiesta a cui questo errore è una risposta.


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

Fornito un dizionario che assume la forma di una richiesta JSON-RPC: decomprime la richiesta e la esegue. I metodi vengono risolti esaminando il campo denominato "method" e cercando una funzione con un nome equivalente nell'oggetto JSONRPC. Se ne viene trovata una, tale metodo viene chiamato.

Per aggiungere nuovi metodi supportati, estendi la classe JSONRPC e chiama process_action() sulla sottoclasse.

action: L'azione da eseguire, come un dizionario sotto forma di richiesta o notifica 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) 🔗

Registers a callback for the given method name.

  • name: The name that clients can use to access the callback.

  • callback: The callback which will handle the specified method.