为方便使用,jsonrpc 库内置了 jsonrpc-process-connection 传输层实现,
可与本地子进程(使用标准输入与标准输出)、TCP 主机(使用套接字)
或 Emacs 进程对象可表示的任何其他远程端点通信(see 进程)。
使用该传输层时,JSONRPC 消息在线路上以纯文本编码, 并以一些基本的 HTTP 风格头部作为前缀,例如“Content-Length”。
有关在 JSONRPC 之上使用该传输方案的应用示例, 可参见 语言服务器协议。
除必选的 :request-dispatcher 与 :notification-dispatcher 初始化参数外,
jsonrpc-process-connection 类的使用者应向 make-instance
传入以下关键字-值对形式的初始化参数:
:process值必须为一个活跃的进程对象,或一个无参且返回该类对象的函数。 若传入进程对象,则该对象应已建立好连接; 否则,该函数会在对象创建后立即调用。
:on-shutdown值必须为一个单参数函数,参数为 jsonrpc-process-connection 对象。
该函数会在底层进程对象被删除后调用
(无论是由 jsonrpc-shutdown 主动删除,还是因外部原因意外删除)。