saas-smartAi通信协议标准库
gongshangguo
2022-03-04 16e34995996fc5884de58b01286e34a4e3bc75d0
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
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{
    // 集群ID
    string clusterId = 1;
    // token
    string authorization = 2;
    // 请求的同步/异步类型
    RequestType syncType = 3;
    // method
    RequestMethod method = 4;
    // content-type
    RequestContentType contentType = 5;
    // 请求业务参数
    bytes req = 6;
}
 
// 设备列表请求参数
message NodesReq{
    // 设备列表ID
    repeated string nodeIds = 1;
    // token
    string authorization = 2;
    // 请求的同步/异步类型
    RequestType syncType = 3;
    // method
    RequestMethod method = 4;
    // content-type
    RequestContentType contentType = 5;
    // 请求业务参数
    bytes req = 6;
}
 
// 响应的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 SendAiotReq(Protocol) returns (Protocol){}
    // 发送群组请求
    rpc SendToCluster(ClusterReq) returns (BusinessReply){}
    // 向多个设备同时发起相同参数请求
    rpc SendToNodes(NodesReq) returns (BusinessReply) {}
}