Skip to content

Latest commit

 

History

History
22 lines (14 loc) · 896 Bytes

rpc.md

File metadata and controls

22 lines (14 loc) · 896 Bytes

rpc

go中net包中支持rpc远程调用

传输支持http和tcp,放在rpc包里, 序列化支持json,放在jsonrpc包里,jsonrpc目前支持是jsonrpc1.0,

go中的rpc包只支持最简单的远程调用功能,google推荐使用grpc。

形象一点,go中的rpc包完成了一件事:访问一个对象的指定方法,可能通过了网络或io连接, 过程是服务端注册一个对象,通过对象的类型名称访问对象,就像访问一个服务一样

注册之后,对象暴露(首字母大写)的方法就可以被远程访问了。 不同类型的对象可以注册在一个服务端,但一个类型的多个对象注册是错误的。

对象的方法要暴露,要满足以下条件:

  • 方法要暴露,即首字母大写
  • 方法有两个参数,参数类型要么是内置的,要么是暴露的
  • 第二个参数是一个指针
  • 返回error