JSON/XML-RPC 通过 TCP 和消息框架

JSON/XML-RPC over TCP and Message Framing

我在考虑 JSON/XML-RPC 通过 HTTP 还是通过 TCP。在 HTTP 的情况下,HTTP 请求和响应提供消息框架机制。但是,由于 TCP 是一个流,

  1. RPC 消息是如何构建的?
  2. RPC 规范是否规定了这一点?
  3. 是否有任何其他标准定义框架机制?
  4. 是否有一种机制比另一种更常用?

在发明框架机制之前,我正试图对此进行衡量。

有很多框架标准,HTTP 就是其中之一。 Websocket 是另一个,在 HTTP 之上,更适合双向流。

JSON-RPC 2.0 故意不关心传输。

(1.0 有一些传输细节,在新版本中被删除了。)

RFC 7484 为“JSON 文本序列”提供了框架标准:https://www.rfc-editor.org/rfc/rfc7464

摘要:每个 JSON 消息都以 0x1E 字节为前缀(不能在 JSON 消息中未转义)并以 0x0A 为后缀(换行)。

但是请注意,这不是 JSON-RPC 规范的一部分。有些库支持它作为其 JSON-RPC 实现的一部分。