Commit e102dfe0 authored by 赵啸非's avatar 赵啸非

修改消息组件

parent a3bcf020
......@@ -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>
......
......@@ -9,9 +9,9 @@ import java.io.Serializable;
public class DeviceResp implements Serializable {
/**
* token(AES加密)
* content(AES加密)
*/
private String token;
private String content;
}
......@@ -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)));
}
......
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()));
}
......
......@@ -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);
%}
......
......@@ -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|数据对象|-
&emsp;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|数据对象|-
&emsp;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":"d3635cd0597d46c88b85797c3846b04f"
}
```
......@@ -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":"d3635cd0597d46c88b85797c3846b04f"
}
```
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment