包体格式

优质
小牛编辑
128浏览
2023-12-01

Request

 {"call": "Service接口名称", "params": “接口参数列表”, "env": "相关环境信息"}
  • call: 是指Service接口的名称,如User\Info::get
  • params:函数的参数列表,vector类型,params在底层会自动作为 User\Info::get 函数的参数传入调用,在PHP代码中相当于 call_user_func_array($call, $params)
  • env:相关环境信息,map类型,客户端与服务器端可自由使用

Response

{"errno": "整数,服务器端返回码", "data": “接口返回值"}
  • errno:错误码,正常调用为0
  • data:无固定格式,由Service接口 返回值 决定

错误码列表

  • 8001; //未就绪
  • 8002; //连接服务器失败
  • 8003; //服务器端超时
  • 8004; //发送失败
  • 8005; //server返回了错误码
  • 8006; //解包失败了
  • 8007; //错误的协议头
  • 8008; //超过最大允许的长度
  • 8009; //连接被关闭
  • 9001; //错误的包头
  • 9002; //请求包体长度超过允许的范围
  • 9003; //服务器繁忙,超过处理能力
  • 9204; //解包失败
  • 9205; //参数错误
  • 9206; //函数不存在
  • 9207; //执行错误
  • 9208 //不允许该服务器登录
  • 9209 //认证不通过
  • 9300 //被服务器踢掉了

Server端的实现中实现了打包格式的自适应,当发现调用端使用JSON格式时,Response包体也会打包为JSON。另外Swoole框架的RPC支持了gzip压缩,启用压缩后可以节约内网通信的流量。

  • 8xxx:客户端错误
  • 9xxx:服务器端错误