mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-17 16:36:03 +08:00
1.代码更新
This commit is contained in:
@@ -21,6 +21,12 @@
|
||||
<groupId>com.fastbee</groupId>
|
||||
<artifactId>fastbee-mq</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fastbee</groupId>
|
||||
<artifactId>fastbee-mqtt-client</artifactId>
|
||||
<version>3.8.5</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.fastbee.mqtt.auth;
|
||||
|
||||
import com.fastbee.common.constant.Constants;
|
||||
import com.fastbee.common.constant.FastBeeConstant;
|
||||
import com.fastbee.common.core.redis.RedisCache;
|
||||
import com.fastbee.common.exception.ServiceException;
|
||||
import com.fastbee.common.utils.StringUtils;
|
||||
import com.fastbee.iot.model.MqttAuthenticationModel;
|
||||
import com.fastbee.iot.service.IToolService;
|
||||
import com.fastbee.mq.mqttClient.MqttClientConfig;
|
||||
import com.fastbee.mqttclient.MqttClientConfig;
|
||||
import io.jsonwebtoken.Claims;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.fastbee.mqtt.manager;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.fastbee.common.enums.DeviceStatus;
|
||||
import com.fastbee.common.enums.TopicType;
|
||||
import com.fastbee.common.utils.gateway.mq.TopicsUtils;
|
||||
import com.fastbee.iot.domain.Device;
|
||||
import com.fastbee.iot.service.IDeviceService;
|
||||
import com.fastbee.mq.mqttClient.PubMqttClient;
|
||||
import com.fastbee.mqtt.model.PushMessageBo;
|
||||
import com.fastbee.mqttclient.PubMqttClient;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import io.netty.handler.codec.mqtt.*;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
@@ -12,13 +12,11 @@ import com.fastbee.common.core.thingsModel.ThingsModelValuesInput;
|
||||
import com.fastbee.iot.service.IDeviceService;
|
||||
import com.fastbee.iot.service.IEventLogService;
|
||||
import com.fastbee.mq.model.ReportDataBo;
|
||||
import com.fastbee.mq.mqttClient.PubMqttClient;
|
||||
import com.fastbee.mq.service.IDataHandler;
|
||||
import com.fastbee.mq.service.IMqttMessagePublish;
|
||||
import com.fastbee.mqtt.manager.MqttRemoteManager;
|
||||
import com.fastbee.mqtt.model.PushMessageBo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.fastbee.mqtt.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.fastbee.common.constant.FastBeeConstant;
|
||||
import com.fastbee.common.core.mq.DeviceReportBo;
|
||||
import com.fastbee.common.core.mq.MQSendMessageBo;
|
||||
import com.fastbee.common.core.mq.message.DeviceData;
|
||||
@@ -10,7 +11,9 @@ import com.fastbee.common.core.mq.message.InstructionsMessage;
|
||||
import com.fastbee.common.core.mq.message.MqttBo;
|
||||
import com.fastbee.common.core.mq.ota.OtaUpgradeBo;
|
||||
import com.fastbee.common.core.protocol.modbus.ModbusCode;
|
||||
import com.fastbee.common.core.redis.RedisCache;
|
||||
import com.fastbee.common.core.thingsModel.ThingsModelSimpleItem;
|
||||
import com.fastbee.common.enums.FunctionReplyStatus;
|
||||
import com.fastbee.common.enums.ServerType;
|
||||
import com.fastbee.common.enums.TopicType;
|
||||
import com.fastbee.common.exception.ServiceException;
|
||||
@@ -27,17 +30,17 @@ import com.fastbee.iot.model.ThingsModels.PropertyDto;
|
||||
import com.fastbee.iot.ruleEngine.MsgContext;
|
||||
import com.fastbee.iot.ruleEngine.RuleProcess;
|
||||
import com.fastbee.iot.service.IDeviceService;
|
||||
import com.fastbee.iot.service.IFunctionLogService;
|
||||
import com.fastbee.iot.service.IProductService;
|
||||
import com.fastbee.iot.service.IThingsModelService;
|
||||
import com.fastbee.iot.service.cache.IFirmwareCache;
|
||||
import com.fastbee.iot.util.SnowflakeIdWorker;
|
||||
import com.fastbee.json.JsonProtocolService;
|
||||
import com.fastbee.mq.model.ReportDataBo;
|
||||
import com.fastbee.mq.mqttClient.PubMqttClient;
|
||||
import com.fastbee.mq.service.IDataHandler;
|
||||
import com.fastbee.mq.service.IMqttMessagePublish;
|
||||
import com.fastbee.mqtt.manager.MqttRemoteManager;
|
||||
import com.fastbee.mqtt.model.PushMessageBo;
|
||||
import com.fastbee.mqttclient.PubMqttClient;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -61,12 +64,12 @@ public class MqttMessagePublishImpl implements IMqttMessagePublish {
|
||||
@Resource
|
||||
private PubMqttClient mqttClient;
|
||||
@Resource
|
||||
private IFirmwareCache firmwareCache;
|
||||
@Resource
|
||||
private TopicsUtils topicsUtils;
|
||||
@Resource
|
||||
private IDeviceService deviceService;
|
||||
@Resource
|
||||
private IFunctionLogService functionLogService;
|
||||
@Resource
|
||||
private MqttRemoteManager remoteManager;
|
||||
|
||||
@Resource
|
||||
@@ -80,6 +83,8 @@ public class MqttMessagePublishImpl implements IMqttMessagePublish {
|
||||
@Resource
|
||||
private RuleProcess ruleProcess;
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Override
|
||||
public InstructionsMessage buildMessage(DeviceDownMessage downMessage, TopicType type) {
|
||||
@@ -195,12 +200,32 @@ public class MqttMessagePublishImpl implements IMqttMessagePublish {
|
||||
instruction.setMessage(context.getPayload().getBytes());
|
||||
}
|
||||
|
||||
mqttClient.publish(instruction.getTopicName(), instruction.getMessage(), funcLog);
|
||||
publish(instruction.getTopicName(), instruction.getMessage(), funcLog);
|
||||
log.debug("=>服务下发,topic=[{}],指令=[{}]", instruction.getTopicName(),new String(instruction.getMessage()));
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
public void publish(String topic, byte[] pushMessage, FunctionLog log) {
|
||||
try {
|
||||
redisCache.incr2(FastBeeConstant.REDIS.MESSAGE_SEND_TOTAL, -1L);
|
||||
redisCache.incr2(FastBeeConstant.REDIS.MESSAGE_SEND_TODAY, 60 * 60 * 24);
|
||||
mqttClient.publish(pushMessage, topic, false, 0);
|
||||
if (null != log) {
|
||||
//存储服务下发成功
|
||||
log.setResultMsg(FunctionReplyStatus.NORELY.getMessage());
|
||||
log.setResultCode(FunctionReplyStatus.NORELY.getCode());
|
||||
functionLogService.insertFunctionLog(log);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (null != log) {
|
||||
//服务下发失败存储
|
||||
log.setResultMsg(FunctionReplyStatus.FAIl.getMessage() + "原因: " + e.getMessage());
|
||||
log.setResultCode(FunctionReplyStatus.FAIl.getCode());
|
||||
functionLogService.insertFunctionLog(log);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* OTA升级下发
|
||||
|
||||
Reference in New Issue
Block a user