繁体   English   中英

JSON RPC - 什么是“id”?

[英]JSON RPC - What is the “id” for?

我不明白JSON RPC中的ID是什么。 另外,在开发工具包时,考虑不使用JSON-RPC.org的标准有多糟糕? 在JSON-RPC世界中似乎存在一些歧义。

PS我所指的ID是这里的ID:

{"params":["Hello","World"],"method":"hello_world","id":1}

您无法保证按照您要求的顺序得到您的答案; id是为了帮助你解决这个问题。

“id”在相应的响应对象中返回,因此您可以将一个上下文映射到另一个上下文。

如果您正在进行同步单个呼叫,则可能没有意义,但在异步多重呼叫环境中,这一点至关重要。

它不应硬编码为1,而是为从客户端生成的每个请求对象设置唯一值。

没有一个答案提到了协议的两个现有版本之间的差异。

JSON RPC 1.0

请求ID。 这可以是任何类型。 它用于将响应与其回复的请求进行匹配。

JSON RPC 2.0

客户端建立的标识符,如果包含,必须包含String,Number或NULL值。 如果未包含,则假定为通知。 值SHOULD通常不是Null,Numbers不应包含小数部分。

因此,在JSON RPC 2.0中将id设置为某个固定值是完全正常的。 但请注意在批处理请求中使用id。

  1. 让服务器知道你期待回复。
  2. 在使用异步或批量调用时匹配对请求的响应。

您可以阅读JSON RPC文档https://www.jsonrpc.org/specification 在“4 Request对象”中,id param清楚地解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM