Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
device-new-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
device-new-platform
Commits
e102dfe0
Commit
e102dfe0
authored
May 11, 2022
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改消息组件
parent
a3bcf020
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
65 additions
and
46 deletions
+65
-46
device-manager/pom.xml
device-manager/pom.xml
+6
-0
device-manager/src/main/java/com/mortals/xhx/busiz/rsp/DeviceResp.java
...r/src/main/java/com/mortals/xhx/busiz/rsp/DeviceResp.java
+2
-2
device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java
...n/java/com/mortals/xhx/busiz/web/DeviceApiController.java
+10
-5
device-manager/src/main/java/com/mortals/xhx/daemon/netty/server/controlserver/handler/NettyUDPServerHandler.java
...y/server/controlserver/handler/NettyUDPServerHandler.java
+11
-4
device-manager/src/test/java/com/mortals/httpclient/device/DeviceController.http
.../java/com/mortals/httpclient/device/DeviceController.http
+3
-4
doc/api.md
doc/api.md
+33
-31
No files found.
device-manager/pom.xml
View file @
e102dfe0
...
...
@@ -68,6 +68,12 @@
<version>
3.9.1
</version>
</dependency>
<dependency>
<groupId>
org.bouncycastle
</groupId>
<artifactId>
bcprov-jdk18on
</artifactId>
<version>
1.71
</version>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
...
...
device-manager/src/main/java/com/mortals/xhx/busiz/rsp/DeviceResp.java
View file @
e102dfe0
...
...
@@ -9,9 +9,9 @@ import java.io.Serializable;
public
class
DeviceResp
implements
Serializable
{
/**
*
token
(AES加密)
*
content
(AES加密)
*/
private
String
token
;
private
String
content
;
}
device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java
View file @
e102dfe0
...
...
@@ -30,6 +30,7 @@ import com.mortals.xhx.module.product.service.ProductService;
import
com.mortals.xhx.queue.TbQueueMsgHeaders
;
import
com.mortals.xhx.queue.TopicPartitionInfo
;
import
lombok.extern.apachecommons.CommonsLog
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.util.ObjectUtils
;
...
...
@@ -47,7 +48,7 @@ import java.util.Date;
* @date: 2021/8/24 20:28
*/
@RestController
@
CommonsLog
@
Slf4j
@RequestMapping
(
"/api"
)
public
class
DeviceApiController
{
...
...
@@ -119,9 +120,13 @@ public class DeviceApiController {
authInfo
.
setExchangeName
(
platformEntity
.
getPlatformSn
()
+
Constant
.
EXCHANGE_SPLIT
+
productEntity
.
getProductCode
());
authInfo
.
setUploadTopicFilter
(
Constant
.
UPLOAD_TOPIC
+
deviceEntity
.
getDeviceCode
());
authInfo
.
setDownTopicFilter
(
Constant
.
DOWN_TOPIC
+
deviceEntity
.
getDeviceCode
());
String
token
=
JSON
.
toJSONString
(
authInfo
);
//String token = AESUtil.encryptForApp(JSON.toJSONString(authInfo), secret);
deviceResp
.
setToken
(
token
);
//String content = JSON.toJSONString(authInfo);
String
content
=
AESUtil
.
encryptForApp
(
JSON
.
toJSONString
(
authInfo
),
secret
);
String
decryptContent
=
AESUtil
.
decryptForApp
(
content
,
secret
);
log
.
info
(
"decryptContent:{}"
,
decryptContent
);
deviceResp
.
setContent
(
content
);
}
deviceEntity
.
setOnlineTime
(
new
Date
());
deviceEntity
.
setDeviceOnlineStatus
(
DeviceOnlineStatusEnum
.
在线
.
getValue
());
...
...
@@ -177,7 +182,7 @@ public class DeviceApiController {
header
.
put
(
MessageHeader
.
MESSAGETYPE
,
Constant
.
MESSAGETYPE_HEARTBEAT
);
for
(
int
i
=
0
;
i
<
1000
;
i
++)
{
deviceService
.
sendDeviceMessage
(
deviceEntity
,
info
,
header
,
JSON
.
toJSONString
(
req
),
null
);
// Thread.sleep(50);
// Thread.sleep(50);
}
//log.info(String.format("sendMsgResp:%s", JSON.toJSONString(sendDeviceMessageResp)));
}
...
...
device-manager/src/main/java/com/mortals/xhx/daemon/netty/server/controlserver/handler/NettyUDPServerHandler.java
View file @
e102dfe0
package
com.mortals.xhx.daemon.netty.server.controlserver.handler
;
import
com.alibaba.fastjson.JSON
;
import
com.mortals.framework.ap.GlobalSysInfo
;
import
com.mortals.xhx.busiz.rsp.ApiResp
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.module.device.service.DeviceService
;
import
io.netty.buffer.Unpooled
;
import
io.netty.channel.ChannelHandlerContext
;
...
...
@@ -28,10 +31,14 @@ public class NettyUDPServerHandler extends SimpleChannelInboundHandler<DatagramP
@Override
protected
void
channelRead0
(
ChannelHandlerContext
ctx
,
DatagramPacket
msg
)
throws
Exception
{
// TODO 设备返回服务端配置
String
URL
=
GlobalSysInfo
.
getParamValue
(
PARAM_SERVER_HTTP_URL
,
"http://192.168.0.100:11021"
);
String
req
=
msg
.
content
().
toString
(
CharsetUtil
.
UTF_8
);
System
.
out
.
println
(
req
);
ctx
.
writeAndFlush
(
new
DatagramPacket
(
Unpooled
.
copiedBuffer
(
"服务器地址:"
+
URL
,
CharsetUtil
.
UTF_8
),
msg
.
sender
()));
String
URL
=
GlobalSysInfo
.
getParamValue
(
PARAM_SERVER_HTTP_URL
,
"http://192.168.0.98:11021"
);
// String req = msg.content().toString(CharsetUtil.UTF_8);
ApiResp
<
String
>
resp
=
new
ApiResp
<>();
resp
.
setCode
(
YesNoEnum
.
YES
.
getValue
());
resp
.
setMsg
(
"获取服务端地址成功!"
);
resp
.
setData
(
URL
);
ctx
.
writeAndFlush
(
new
DatagramPacket
(
Unpooled
.
copiedBuffer
(
JSON
.
toJSONString
(
resp
),
CharsetUtil
.
UTF_8
),
msg
.
sender
()));
}
...
...
device-manager/src/test/java/com/mortals/httpclient/device/DeviceController.http
View file @
e102dfe0
...
...
@@ -54,13 +54,12 @@ POST {{baseUrl}}/api/active
Content-Type: application/json
{
"deviceNum":"AB:DD:DF:FD:AD:FA:DA:SS",
"deviceMac":"AB:DD:DF:FD:AD:FA:DA:SS",
"action":"active"
"deviceNum":"AB:DD:DF:FD:AD:FA:DA:SS"
}
> {%
client.global.set("
authToken", JSON.parse(response.body).data.token
);
client.global.set("
content", JSON.parse(response.body).data.content
);
%}
...
...
doc/api.md
View file @
e102dfe0
...
...
@@ -15,30 +15,29 @@ object|对象类型|{"name":"zhang3"}
arrays|数组类型|[{"name":"zhang3"},{"name":"zhang2"}]
## 接口服务
### 设备激活
**请求URL:**
api/active
### 服务端地址获取
**请求方式:**
POST
**广播端口:**
54321
**请求方式:**
UDP
**内容类型:**
application/json;charset=utf-8
**简要描述:**
设备激活
**
请求
参数:**
**
广播
参数:**
参数名称|类型|备注|必填|其它
---|---|---|---|---
deviceNum|String|设备编码|是|-
deviceMac|String|设备MAC|是|-
type|Integer|设备类型(1.呼叫器,2.窗口屏, 3.评价器,4.集中屏, 5.排号机,6.im设备, 7.样表设备,8.取件柜, 9.信息发布,10.导视机,11.开标室设备,12.背靠背)|是|-
**请求样例:**
```
{
"deviceNum":"12345678"
}
```
...
...
@@ -48,34 +47,31 @@ type|Integer|设备类型(1.呼叫器,2.窗口屏, 3.评价器,4.集中屏
---|---|---|---
code|Integer|结果码(-1.失败,1.成功)|-
msg|String|消息|-
data|object|数据对象|-
 
token|String|激活后返回token|-
data|String|数据对象|-
**响应消息样例:**
```
{
"msg":"
登录
成功",
"msg":"
获取服务端地址
成功",
"code":1,
"data":{
"token":"xxxxxxxxxx"
}
"data":"http://192.168.0.98:11021"
}
```
### 设备上报
**请求URL:**
api/upload
### 设备注册激活
**请求URL:**
api/active
**请求方式:**
POST
**请求头校验:**
Authorization: Bearer {{authToken}}
**内容类型:**
application/json;charset=utf-8
**简要描述:**
设备
上报日志
**简要描述:**
设备
注册激活,成功返回响应rabbmit连接参数
**请求参数:**
...
...
@@ -85,11 +81,8 @@ deviceNum|String|设备编码|是|-
**请求样例:**
```
{
"userName":"zhang3",
"password":"123456",
"securityCode":"5455"
"deviceNum":"a12345678"
}
```
...
...
@@ -100,29 +93,38 @@ deviceNum|String|设备编码|是|-
code|Integer|结果码(-1.失败,1.成功)|-
msg|String|消息|-
data|object|数据对象|-
 
content|String|加密后的内容|AES加密
**content解密参数:**
参数名称 |参数类型|备注|其它
---|---|---|---
downTopicFilter|String|下行队列topic|-
uploadTopicFilter|String|上行队列topic|-
username|String|rabbmit用户名|-
password|String|rabbmit密码|-
host|String|ip|-
port|String|端口|-
virtualHost|String|虚拟机|-
exchangeName|String|交换机名称|-
**响应消息样例:**
```
{
"msg":"登录成功",
"code":1,
"data":{
"content":"hRNPu+V1hc4lGRHtXGyVOF0U7ez8/ZxFke9L4o7DWVLMfsZwkViAChfLKSydAEWAdsbgP1dzfNrQTq7X0diu1awR/qdPNcDcpj5/hBozLn+OmuTKLUWhq9+WGtuoF3BTbtIpWkpQWDGolOCfRadenGUkuMozjEwwkt5CIDa+nzOqh56BJIhGahlx79Qt30ugj3UNhLTfvw5lpN9jY7u+icx+xnCRWIAKF8spLJ0ARYAbMXXhI21dYty7e1b+Cb2wZobupPyXRmyuy8Fkn4bculmkCywq78F6tPlu0rCCgJA="
}
}
```
## 消息
### 上行消息
**topic:**
/upload/{deviceMac}
**topic:**
uploadTopicFilter
**请求方式:**
rabbmitMQ
...
...
@@ -156,7 +158,7 @@ key|String|消息唯一标识|是|-
"timestamp":"2022-04-15 09:48:05"
}
},
"key":"d3635cd0
-597d-46c8-8b85-
797c3846b04f"
"key":"d3635cd0
597d46c88b85
797c3846b04f"
}
```
...
...
@@ -164,7 +166,7 @@ key|String|消息唯一标识|是|-
### 下行消息
**topic:**
/down/{deviceMac}
**topic:**
downTopicFilter
**请求方式:**
rabbmitMQ
...
...
@@ -198,7 +200,7 @@ key|String|消息唯一标识|是|-
"timestamp":"2022-04-15 09:48:05"
}
},
"key":"d3635cd0
-597d-46c8-8b85-
797c3846b04f"
"key":"d3635cd0
597d46c88b85
797c3846b04f"
}
```
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment