我不明白 JSON RPC 中的 ID 是什么。此外,在开发工具包时不使用 JSON-RPC.org 的标准有多糟糕?JSON-RPC 世界中似乎存在一些歧义。
PS我指的ID是这里的ID:
{"params":["Hello","World"],"method":"hello_world","id":1}
您不能保证按照您要求的顺序得到答案;id 是为了帮助你解决这个问题。
“id”在相应的响应对象中返回,因此您可以将一个上下文映射到另一个上下文。
如果您正在进行同步单次调用,这可能没有意义,但在异步多未完成调用环境中它是至关重要的。
它不应硬编码为 1,而应为您从客户端生成的每个请求对象设置为唯一值。
没有一个答案提到协议的两个现有版本之间的区别。
请求 ID。这可以是任何类型。它用于将响应与它正在回复的请求相匹配。
由客户端建立的标识符,如果包含,则必须包含字符串、数字或 NULL 值。如果不包含它,则假定它是一个通知。该值通常不应为 Null,并且数字不应包含小数部分。
因此,在 JSON RPC 2.0 中将 id 设置为某个固定值是非常好的。但要注意在批处理请求中使用 id。
您可以阅读 JSON RPC 文档https://www.jsonrpc.org/specification。在“4 请求对象”中,id 参数解释得很清楚。