|
@@ -29,7 +29,7 @@ public class MqttCallbackHandler {
|
|
|
@Resource
|
|
|
private ILogsService logsService;
|
|
|
@Resource
|
|
|
- private IDeviceBaseService deviceStaticService;
|
|
|
+ private IDeviceBaseService deviceBaseService;
|
|
|
@Resource
|
|
|
private UbiHandlers ubiHandlers;
|
|
|
@Resource
|
|
@@ -44,33 +44,30 @@ public class MqttCallbackHandler {
|
|
|
public void handle(String topic, String payload) {
|
|
|
//设备码
|
|
|
String openNum = Constant.splitOpenNum(topic);
|
|
|
+ //解析数据
|
|
|
MqttDTO mqttDTO = MqttDTO.parse(payload);
|
|
|
// 1. 存储日志 --- 接收
|
|
|
logsService.saveReceive(topic, payload);
|
|
|
// 2. 根据报文标识代码 M 处理消息
|
|
|
switch (mqttDTO.getM()) {
|
|
|
- //设备端注册报文
|
|
|
- case Constant.M.REGISTER: {
|
|
|
+ case Constant.M.REGISTER: {//设备端注册报文
|
|
|
registerHandler(mqttDTO);
|
|
|
break;
|
|
|
}
|
|
|
- // 心跳包
|
|
|
- case Constant.M.UBI_HEARTBEAT: {
|
|
|
+ case Constant.M.UBI_HEARTBEAT: {// 心跳包
|
|
|
ubiHandlers.heartbeatHandler(openNum, mqttDTO);
|
|
|
break;
|
|
|
}
|
|
|
- // 获取设备设置信息
|
|
|
- case Constant.M.UBI_SET_INFO: {
|
|
|
+ case Constant.M.UBI_SET_INFO: {// 获取设备设置信息
|
|
|
ubiHandlers.deviceSetHandler(openNum, mqttDTO);
|
|
|
break;
|
|
|
}
|
|
|
- // 获取设备设置信息
|
|
|
- case Constant.M.LP_HEARTBEAT: {
|
|
|
+ case Constant.M.LP_HEARTBEAT: {// 获取设备设置信息
|
|
|
lpHandlers.deviceInfoHandler(openNum, mqttDTO);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- // 3. 转发消息至网页,忽略注册的报文
|
|
|
+ // 3. 转发消息至网页
|
|
|
webSocketHandler.massMessage(openNum, payload);
|
|
|
}
|
|
|
|
|
@@ -80,7 +77,7 @@ public class MqttCallbackHandler {
|
|
|
private void registerHandler(MqttDTO mqttDTO) {
|
|
|
String openNum = mqttDTO.getString("regnum");
|
|
|
// 查询数据库中是否有此设备
|
|
|
- DeviceBase device = deviceStaticService.getOne(new QueryWrapper<DeviceBase>().eq("open_num", openNum));
|
|
|
+ DeviceBase device = deviceBaseService.getOne(new QueryWrapper<DeviceBase>().eq("open_num", openNum));
|
|
|
// 没有该设备,保存至数据库
|
|
|
if (device == null) {
|
|
|
device = new DeviceBase();
|
|
@@ -90,7 +87,7 @@ public class MqttCallbackHandler {
|
|
|
device.setUsername("IMEI" + openNum);
|
|
|
device.setPassword(MD5Util.encode(openNum));
|
|
|
device.setSn("SN" + openNum);
|
|
|
- deviceStaticService.save(device);
|
|
|
+ deviceBaseService.save(device);
|
|
|
}
|
|
|
// mqtt服务器注册用户
|
|
|
RabbitMQApi.register(device.getUsername(), device.getPassword());
|