saas-smartAi通信协议标准库
gongshangguo
2022-04-12 acf384f3d6653f4696446b113177140f491c4e38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
syntax = "proto3";
 
package aiot;
 
import "aiot_common.proto";
 
// 请求类型
enum RequestType{
    // 同步请求 默认
    sync = 0;
    // 异步请求
    Async = 1;
}
 
// 请求方式
enum RequestMethod{
    // 默认
    MethodDefault = 0;
    // post请求
    Post = 1;
    // get请求
    Get = 2;
    // put请求
    Put = 3;
    // delete请求
    Delete = 4;
}
 
// 请求header
enum RequestContentType{
    ContentTypeDefault = 0;
    ApplicationJson = 1;
    ApplicationXWwwFormUrlencoded = 2;
    MultipartFormData = 3;
    ApplicationXml = 4;
}
 
// 请求的body体
message NodeReq {
    // 请求的topic url
    string topic = 1;
    // 节点ID
    string nodeId = 2;
    // token
    string authorization = 3;
    // 请求指向的ip
    string ip = 4;
    // 请求的端口 保留字段
    string port = 5;
    // 请求的同步/异步类型
    RequestType syncType = 6;
    // method
    RequestMethod method = 7;
    // content-type
    RequestContentType contentType = 8;
    // 请求业务参数
    bytes req = 9;
}
 
// 集群请求参数
message ClusterReq{
    // 请求的topic url
    string topic = 1;
    // 集群ID
    string clusterId = 2;
    // token
    string authorization = 3;
    // 请求的同步/异步类型
    RequestType syncType = 4;
    // method
    RequestMethod method = 5;
    // content-type
    RequestContentType contentType = 6;
    // 请求业务参数
    bytes req = 7;
}
 
// 设备列表请求参数
message NodesReq{
    // 请求的topic url
    string topic = 1;
    // 设备列表ID
    repeated string nodeIds = 2;
    // token
    string authorization = 3;
    // 请求的同步/异步类型
    RequestType syncType = 4;
    // method
    RequestMethod method = 5;
    // content-type
    RequestContentType contentType = 6;
    // 请求业务参数
    bytes req = 7;
}
 
// 请求到saas
message SaasReq {
    // 请求的topic url
    string rpcAddr = 1;
    // rpc模块名
    string rpcNode = 2;
    // token
    string authorization = 3;
    // 请求的同步/异步类型
    RequestType syncType = 4;
    // 请求业务参数
    bytes req = 5;
}
 
// 响应的body体
message BusinessReply {
    // 返回的错误码
    int32 code = 1;
    // 错误信息
    string msg = 2;
    // 是否success
    bool success = 3;
    // 返回结果
    bytes data = 4;
}
 
// 服务
service AiotService {
    // 发送指向单个设备的请求
    rpc SendToNode(NodeReq) returns (BusinessReply){}
    // 直接发送同步tcp请求
    rpc SendAiotSyncReq(Protocol) returns (BusinessReply){}
    // 发送群组请求
    rpc SendToCluster(ClusterReq) returns (BusinessReply){}
    // 向多个设备同时发起相同参数请求
    rpc SendToNodes(NodesReq) returns (BusinessReply) {}
}