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
继承: Object
用于处理看起来像 JSONRPC 文档的字典的辅助类。
描述
JSON-RPC 是一项标准,它将方法调用包装在一个 JSON 对象中。该对象有一个特定的结构,并标识出哪个方法被调用,该函数的参数,并携带一个 ID 来跟踪响应。这个类在 Dictionary 之上实现了该标准;你必须用其他函数在 Dictionary 和 JSON 之间进行转换。
方法
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 |
枚举
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
:唯一标识该请求。服务器应发送具有相同 ID 的响应。
Dictionary make_response(result: Variant, id: Variant) 🔗
当服务器接收并处理了请求时,它应该发送响应。如果不想要响应,则需要发送通知。
result
:被调用的函数的返回值。id
:该响应针对的请求的 ID。
Dictionary make_response_error(code: int, message: String, id: Variant = null) const 🔗
创建响应,指示先前的回复以某种方式失败。
code
:这是哪种错误对应的错误代码。请参阅 ErrorCode 常量。message
:关于该错误的自定义消息。id
:该错误作为响应对应的请求。
Variant process_action(action: Variant, recurse: bool = false) 🔗
给定采用 JSON-RPC 请求形式的字典:解压请求并运行它。通过查看名为“method”的字段,并在 JSONRPC 对象中查找等效命名的函数来解析方法。如果找到,则调用该方法。
要添加新的受支持方法,请扩展 JSONRPC 类并在你的子类上调用 process_action()。
action
:要运行的动作,作为 JSON-RPC 请求或通知形式的字典。
String process_string(action: String) 🔗
该方法目前没有描述,请帮我们贡献一个吧!
void set_scope(scope: String, target: Object) 🔗
该方法目前没有描述,请帮我们贡献一个吧!