西纳普斯RPC框架2-通信协议

变量申明

下文中,所有{}表示一个变量,使用到的变量如下:

名称类型说明
{SysName}string系统名称,相同系统中的组件才可以通讯
{AppName}string应用名称,每个组件的标识
{AppID}string应用ID,每个组件实例的唯一标识(不能重复)
{FuncName}stringRPC方法注册名称,用于调用本方法
{EventName}string事件的名称

通信载体

使用Rabbit MQ消息队列作为消息承载体

Exchange

用途名称类型
消息总分发{SysName}Topic

消息队列:

用途队列名Route Key
事件处理{SysName}_event_{AppName}event.{AppName}.{Event}
RPC服务器{SysName}_rpc_srv_{AppName}rpc.srv.{AppName}
RPC客户端{SysName}_rpc_cli_{AppName}_{AppID}rpc.cli.{AppName}.{AppID}

通信消息包

通信消息包中,使用JSON数据包进行通信

消息包字段

名称类型说明
fromstring{AppName}.{AppID}发出RPC或事件的组件名称{AppName}和ID{AppID}
tostring{AppName} or "event"RPC请求为要请求的组件名称{AppName},事件为“event”
actionstring{FuncName} or {EventName}RPC为{FuncName},事件为 {EventName}
paramsstring消息JSON真正要传递的消息包体

示例

{
    "from":"sion.yxPDG0MRQaJF4rzLfYZ2",
    "to":"nymph",
    "action":"tokens.get", 
    "params":{
       "header":{
           "apiver":"",
           "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Njk5NDQ0NTOt_UQ8"
        }
    }
}
点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注