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
Hérite de : Object
Hérité par : GDScriptLanguageProtocol
Une classe d'aide pour gérer les dictionnaires qui ressemblent à des documents JSONRPC.
Description
JSON-RPC est une norme qui enveloppe un appel de méthode dans un objet JSON. L'objet a une structure particulière et identifie quelle méthode est appelée, les paramètres de cette fonction, et porte un ID pour suivre les réponses. Cette classe implémente cette norme par dessus Dictionary, vous devrez convertir entre un Dictionary et JSON avec d'autres fonctions.
Méthodes
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) |
Énumérations
enum ErrorCode: 🔗
ErrorCode PARSE_ERROR = -32700
La requête n'a pas pu être parsée car elle n'était pas valide selon la norme JSON (JSON.parse() a échoué).
ErrorCode INVALID_REQUEST = -32600
Un appel de méthode a été demandé, mais le format de la requête n'est pas valide.
ErrorCode METHOD_NOT_FOUND = -32601
Un appel de méthode a été demandé, mais aucune fonction avec ce nom n'existait dans la sous-classe JSONRPC.
ErrorCode INVALID_PARAMS = -32602
Un appel de méthode a été demandé, mais les paramètres de méthode donnés ne sont pas valides. Non utilisé par le JSONRPC intégré.
ErrorCode INTERNAL_ERROR = -32603
Une erreur interne s'est produite lors du traitement de la requête. Non utilisé par le JSONRPC intégré.
Descriptions des méthodes
Dictionary make_notification(method: String, params: Variant) 🔗
Renvoie un dictionnaire sous forme d'une notification JSON-RPC. Les notifications sont des messages à usage unique qui ne s'attendent pas à une réponse.
method: Nom de la méthode appelée.params: Un tableau ou un dictionnaire de paramètres transmis à la méthode.
Dictionary make_request(method: String, params: Variant, id: Variant) 🔗
Renvoie un dictionnaire sous forme de requête JSON-RPC. Les requêtes sont envoyées à un serveur avec l'attente d'une réponse. Le champ ID est utilisé pour le serveur pour spécifier la requête exacte à laquelle il répond.
method: Nom de la méthode appelée.params: Un tableau ou un dictionnaire de paramètres transmis à la méthode.id: Identifie cette requête de façon unique. Le serveur devrait envoyer une réponse avec le même ID.
Dictionary make_response(result: Variant, id: Variant) 🔗
Quand un serveur a reçu et traité une requête, il est attendu qu'il envoie une réponse. Si vous ne voulez pas de réponse alors vous devez envoyer une Notification à la place.
result: Le résultat de la fonction appelée.id: L'identifiant de la requête que cette réponse cible.
Dictionary make_response_error(code: int, message: String, id: Variant = null) const 🔗
Crée une réponse qui indique qu'une réponse précédente a échoué d'une certaine manière.
code: Le code d'erreur correspondant à ce type d'erreur. Voir les constantes ErrorCode.message: Un message personnalisé sur cette erreur.id: La requête à laquelle cette erreur est une réponse.
Variant process_action(action: Variant, recurse: bool = false) 🔗
Compte tenu d'un dictionnaire qui prend la forme d'une demande JSON-RPC : déballe la requête et l'exécute. Les méthodes sont résolues en regardant le champ appelé "method" et en recherchant une fonction équivalente dans l'objet JSONRPC. Si une telle méthode est trouvée, elle est appelée.
Pour ajouter de nouvelles méthodes supportées, prolongez la classe JSONRPC et appelez process_action() sur votre sous-classe.
action : L'action à exécuter, en tant que Dictionary sous forme de requête ou de notification 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.