json 协议标准_Golang 语言使用标准库 net/rpc/jsonrpc 包跨语言远程调用

01

介绍

Go 语言标准库 net/rpc 默认采用 encoding/gob 包编解码传输数据,gob 编解码方式仅适用于 Go 应用,如果需要跨语言远程调用,可以指定支持跨语言的其他编解码方式,比如 protobuf,或使用 net/rpc 的子包 net/rpc/jsonrpc,它支持JSON-RPC 1.0,通过 json 格式传输数据。

02

Go 语言 net/rpc/jsonrpc 标准库

jsonrpc 是基于 TCP 协议,不支持 HTTP 协议。jsonrpc 采用 JSON 编解码传输数据,而不是采用 gob 编解码方式。其他方面和 net/rpc 一样,可以通过阅读「Go 使用标准库 net/rpc 包」了解相关内容。

03

net/rpc/jsonrpc 怎么使用?

通过一个简单的示例,我们演示 Go 语言标准库 net/rpc/jsonrpc 的使用方法。

RPC 方法:

服务提供方定义一个可导出的 User 对象和一个符合 RPC 方法定义规则的 Register 方法。

d7937e39113619173c999ef6bbef675a.png

服务提供方:

服务提供方注册 user 对象,创建基于 TCP 协议的运行在单个连接上的 JOSN-RPC 服务器。

c711a13ae24576183d6b8cbbc09555f7.png

服务调用方:

服务提供方注册 user 对象后,服务调用方就可以调用 user 对象的 user.Register 方法。调用方法之前,先连接一个指定网络协议和地址的 JSON-RPC 服务,返回一个新创建的客户端。然后,使用客户端调用 user.Register 方法,传递参数,等待返回结果。

7f475471503fc36347be0f4e6dfb462b.png

04

总结

本文先介绍了 Go 语言标准库 net/rpc/jsonrpc 的编解码方式和功能。即使用 json 编解码传输数据,提供跨语言远程调用的功能。然后,通过一个简单示例来演示了 net/rpc/jsonrpc 的使用方法。


bfcdf3a3cb6ef96a63dddc3a330cf4a4.png

推荐阅读:

Go 使用标准库 net/rpc 包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值