技术简介
json-rpc是基于json的跨语言远程调用协议,比xml-rpc、webservice等基于文本的协议传输数据格小;
相对hessian、java-rpc等二进制协议便于调试、实现、扩展,是非常优秀的一种远程调用协议。
目前主流语言都已有json-rpc的实现框架,java语言中较好的json-rpc实现框架有jsonrpc4j、jpoxy、json-rpc。
三者之中jsonrpc4j既可独立使用,又可与spring无缝集合,比较适合于基于spring的项目开发。
一、JSON-RPC协议描述
json-rpc协议非常简单,发起远程调用时向服务端传输数据格式如下:
{ "method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1}
参数说明:
method: 调用的方法名
params: 方法传入的参数,若无参数则传入 []
id : 调用标识符,用于标示一次远程调用过程
服务器其收到调用请求,处理方法调用,将方法效用结果效应给调用方;返回数据格式:
{
"result": "Hello JSON-RPC",
"error": null,
"id": 1
}
参数说明:
result: 方法返回值,若无返回值,则返回null。若调用错误,返回null。
error :调用时错误,无错误返回null。
id : 调用标识符,与调用方传入的标识符一致。
以上就是json-rpc协议规范,非常简单,小巧,便于各种语言实现。
传到服务器端的数据格式如下:
/work/addComment
HTTP/ 1.1
HOST: api .example .com
Content-Type: application/json
{ "method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1}
而响应对象 回应,就大同小异了,
{"jsonrpc" : "2.0", "result": "","error" : null,"id" : 1 };
当成功时,result为返回计算结果,error为null
这里要注意的是当失败时,error应为以下结构:
{"code":-32601,"message": "Method:" + body.method + " is not support", "data":null};
利用nodejs的http库即可轻易地实现基于http的json-rpc服务器端。
json-rpc是基于json的跨语言远程调用协议,比xml-rpc、webservice等基于文本的协议传输数据格小;
相对hessian、java-rpc等二进制协议便于调试、实现、扩展,是非常优秀的一种远程调用协议。
目前主流语言都已有json-rpc的实现框架,java语言中较好的json-rpc实现框架有jsonrpc4j、jpoxy、json-rpc。
三者之中jsonrpc4j既可独立使用,又可与spring无缝集合,比较适合于基于spring的项目开发。
一、JSON-RPC协议描述
json-rpc协议非常简单,发起远程调用时向服务端传输数据格式如下:
{ "method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1}
参数说明:
method: 调用的方法名
params: 方法传入的参数,若无参数则传入 []
id : 调用标识符,用于标示一次远程调用过程
服务器其收到调用请求,处理方法调用,将方法效用结果效应给调用方;返回数据格式:
{
"result": "Hello JSON-RPC",
"error": null,
"id": 1
}
参数说明:
result: 方法返回值,若无返回值,则返回null。若调用错误,返回null。
error :调用时错误,无错误返回null。
id : 调用标识符,与调用方传入的标识符一致。
以上就是json-rpc协议规范,非常简单,小巧,便于各种语言实现。
传到服务器端的数据格式如下:
/work/addComment
HTTP/ 1.1
HOST: api .example .com
Content-Type: application/json
{ "method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1}
而响应对象 回应,就大同小异了,
rpc-json
中的响应对象包含:
{"jsonrpc" : "2.0", "result": "","error" : null,"id" : 1 };
当成功时,result为返回计算结果,error为null
这里要注意的是当失败时,error应为以下结构:
{"code":-32601,"message": "Method:" + body.method + " is not support", "data":null};
利用nodejs的http库即可轻易地实现基于http的json-rpc服务器端。
以下是我写的Nodejs最小Http rpc-json服务器端: miniRpcServer.js 可点击下载
本文介绍了一个使用NodeJS实现的基于HTTP的RPC-JSON最小服务器端示例,通过miniRpcServer.js文件展示了如何创建简单的API接口。

440

被折叠的 条评论
为什么被折叠?



