Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

JSONRPC

继承: Object

用于处理看起来像 JSONRPC 文档的字典的辅助类。

描述

JSON-RPC 是一项标准,它将方法调用包装在一个 JSON 对象中。该对象有一个特定的结构,并标识出哪个方法被调用,该函数的参数,并携带一个 ID 来跟踪响应。这个类在 Dictionary 之上实现了该标准;你必须用其他函数在 DictionaryJSON 之间进行转换。

方法

Dictionary

make_notification ( String method, Variant params )

Dictionary

make_request ( String method, Variant params, Variant id )

Dictionary

make_response ( Variant result, Variant id )

Dictionary

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

Variant

process_action ( Variant action, bool recurse=false )

String

process_string ( String action )

void

set_scope ( String scope, Object target )


枚举

enum ErrorCode:

ErrorCode PARSE_ERROR = -32700

ErrorCode INVALID_REQUEST = -32600

ErrorCode METHOD_NOT_FOUND = -32601

请求了方法调用,但 JSONRPC 子类中不存在该名称的函数。

ErrorCode INVALID_PARAMS = -32602

ErrorCode INTERNAL_ERROR = -32603


方法说明

Dictionary make_notification ( String method, Variant params )

返回 JSON-RPC 通知形式的字典。通知是一次性的信息,不需要有响应。

  • method:被调用的方法的名称。

  • params:传递给该被调用的方法的参数的数组或字典。


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

以 JSON-RPC 请求的形式返回字典。请求被发送到服务器并期望得到响应。ID 字段用于服务器指定它正在响应的确切请求。

  • method:被调用的方法的名称。

  • params:传递给该被调用的方法的参数的数组或字典。

  • id:唯一标识该请求。服务器应发送具有相同 ID 的响应。


Dictionary make_response ( Variant result, Variant id )

当服务器接收并处理了请求时,它应该发送响应。如果不想要响应,则需要发送通知。

  • result:被调用的函数的返回值。

  • id:该响应针对的请求的 ID。


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

创建响应,指示先前的回复以某种方式失败。

  • code:这是哪种错误对应的错误代码。请参阅 ErrorCode 常量。

  • message:关于该错误的自定义消息。

  • id:该错误作为响应对应的请求。


Variant process_action ( Variant action, bool recurse=false )

给定采用 JSON-RPC 请求形式的字典:解压请求并运行它。通过查看名为“method”的字段,并在 JSONRPC 对象中查找等效命名的函数来解析方法。如果找到,则调用该方法。

要添加新的受支持方法,请扩展 JSONRPC 类并在你的子类上调用 process_action

action:要运行的动作,作为 JSON-RPC 请求或通知形式的字典。


String process_string ( String action )

目前没有这个方法的描述。请帮我们贡献一个


void set_scope ( String scope, Object target )

目前没有这个方法的描述。请帮我们贡献一个