【问题标题】:JSON/XML-RPC over TCP and Message Framing基于 TCP 和消息帧的 JSON/XML-RPC
【发布时间】:2025-12-27 02:50:16
【问题描述】:

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

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

在发明框架机制之前,我试图判断这一点。

【问题讨论】:

    标签: tcp json-rpc


    【解决方案1】:

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

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

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

    【讨论】:

    • 这在 JSON-RPC 和 TCP 之间留下了一个令人讨厌的未指定差距。是否有基于普通 TCP 套接字的 JSON-RPC 框架的标准?
    【解决方案2】:

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

    总结:每条 JSON 消息都以 0x1E 字节为前缀(在 JSON 消息中不能以未转义的形式出现),并以 0x0A 为后缀(换行符)。

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

    【讨论】: