klzhangweiya há 2 anos atrás
pai
commit
529d4ac005
26 ficheiros alterados com 0 adições e 972 exclusões
  1. 0 33
      iwb-iot-project/.gitignore
  2. 0 116
      iwb-iot-project/pom.xml
  3. 0 25
      iwb-iot-project/src/main/java/com/iwbnet/iot/IwbIotProjectApplication.java
  4. 0 19
      iwb-iot-project/src/main/java/com/iwbnet/iot/common/BaseResponse.java
  5. 0 22
      iwb-iot-project/src/main/java/com/iwbnet/iot/common/CodeEnum.java
  6. 0 10
      iwb-iot-project/src/main/java/com/iwbnet/iot/common/Constant.java
  7. 0 51
      iwb-iot-project/src/main/java/com/iwbnet/iot/common/MqResponse/LoginResp.java
  8. 0 52
      iwb-iot-project/src/main/java/com/iwbnet/iot/common/ResponseData.java
  9. 0 32
      iwb-iot-project/src/main/java/com/iwbnet/iot/config/MqttConfig.java
  10. 0 44
      iwb-iot-project/src/main/java/com/iwbnet/iot/config/SwaggerConfig.java
  11. 0 77
      iwb-iot-project/src/main/java/com/iwbnet/iot/controller/MqttController.java
  12. 0 22
      iwb-iot-project/src/main/java/com/iwbnet/iot/entity/Terminal.java
  13. 0 25
      iwb-iot-project/src/main/java/com/iwbnet/iot/entity/User.java
  14. 0 13
      iwb-iot-project/src/main/java/com/iwbnet/iot/mapper/UserMapper.java
  15. 0 46
      iwb-iot-project/src/main/java/com/iwbnet/iot/model/AuthClientDto.java
  16. 0 17
      iwb-iot-project/src/main/java/com/iwbnet/iot/model/ClientLoginDto.java
  17. 0 16
      iwb-iot-project/src/main/java/com/iwbnet/iot/model/TopicMsgDto.java
  18. 0 32
      iwb-iot-project/src/main/java/com/iwbnet/iot/mqtt/MqCallback.java
  19. 0 179
      iwb-iot-project/src/main/java/com/iwbnet/iot/mqtt/MqttConnect.java
  20. 0 9
      iwb-iot-project/src/main/java/com/iwbnet/iot/service/IPayloadService.java
  21. 0 24
      iwb-iot-project/src/main/java/com/iwbnet/iot/utils/Md5Util.java
  22. 0 29
      iwb-iot-project/src/main/resources/application-dev.yml
  23. 0 3
      iwb-iot-project/src/main/resources/application.yml
  24. 0 57
      iwb-iot-project/src/main/resources/logback.xml
  25. 0 6
      iwb-iot-project/src/main/resources/static/index.html
  26. 0 13
      iwb-iot-project/src/test/java/com/iwbnet/iot/IwbIotProjectApplicationTests.java

+ 0 - 33
iwb-iot-project/.gitignore

@@ -1,33 +0,0 @@
-HELP.md
-target/
-!.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
-!**/src/main/**/build/
-!**/src/test/**/build/
-
-### VS Code ###
-.vscode/

+ 0 - 116
iwb-iot-project/pom.xml

@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>com.iwbnet</groupId>
-    <artifactId>iwb-iot-project</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <name>iwb-iot-project</name>
-    <description>iwb-iot-project</description>
-    <properties>
-        <java.version>1.8</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <spring-boot.version>2.6.13</spring-boot.version>
-    </properties>
-    <dependencies>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.mybatis.spring.boot</groupId>
-            <artifactId>mybatis-spring-boot-starter</artifactId>
-            <version>2.2.2</version>
-        </dependency>
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>druid</artifactId>
-            <version>1.2.16</version>
-        </dependency>
-        <dependency>
-            <groupId>com.mysql</groupId>
-            <artifactId>mysql-connector-j</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>cn.hutool</groupId>
-            <artifactId>hutool-all</artifactId>
-            <version>5.8.20</version>
-        </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>com.alibaba.fastjson2</groupId>
-            <artifactId>fastjson2</artifactId>
-            <version>2.0.32</version>
-        </dependency>
-
-        <dependency>
-            <groupId>io.springfox</groupId>
-            <artifactId>springfox-boot-starter</artifactId>
-            <version>3.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.integration</groupId>
-            <artifactId>spring-integration-mqtt</artifactId>
-            <version>5.5.14</version>
-        </dependency>
-    </dependencies>
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring-boot.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                    <encoding>UTF-8</encoding>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring-boot.version}</version>
-                <configuration>
-                    <mainClass>com.iwbnet.iot.IwbIotProjectApplication</mainClass>
-                    <skip>true</skip>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>repackage</id>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>

+ 0 - 25
iwb-iot-project/src/main/java/com/iwbnet/iot/IwbIotProjectApplication.java

@@ -1,25 +0,0 @@
-package com.iwbnet.iot;
-
-import com.iwbnet.iot.mqtt.MqttConnect;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-@MapperScan("com.iwbnet.iot.mapper")
-public class IwbIotProjectApplication implements CommandLineRunner {
-    @Autowired
-    private MqttConnect mqttConnect;
-
-    public static void main(String[] args) {
-        SpringApplication.run(IwbIotProjectApplication.class, args);
-    }
-
-    @Override
-    public void run(String... args) throws Exception {
-        //程序启动时候,创建一个mqtt连接
-        mqttConnect.connect("", "", null);
-    }
-}

+ 0 - 19
iwb-iot-project/src/main/java/com/iwbnet/iot/common/BaseResponse.java

@@ -1,19 +0,0 @@
-package com.iwbnet.iot.common;
-
-import lombok.Data;
-
-@Data
-public class BaseResponse {
-    /**
-     * 状态码
-     */
-    private Integer code;
-
-
-
-    protected BaseResponse(CodeEnum code) {
-        this.code = code.getCode();
-
-    }
-
-}

+ 0 - 22
iwb-iot-project/src/main/java/com/iwbnet/iot/common/CodeEnum.java

@@ -1,22 +0,0 @@
-package com.iwbnet.iot.common;
-
-public enum CodeEnum {
-    SUCCESS(200),
-    FAIL(500),
-    ;
-
-    private final Integer code;
-
-
-
-    CodeEnum(Integer code) {
-        this.code = code;
-
-    }
-
-    public Integer getCode() {
-        return code;
-    }
-
-
-}

+ 0 - 10
iwb-iot-project/src/main/java/com/iwbnet/iot/common/Constant.java

@@ -1,10 +0,0 @@
-package com.iwbnet.iot.common;
-
-public class Constant {
-
-
-    public static final Integer USER_STATUS_ACTIVE = 0;
-    public static final Integer USER_STATUS_FORBID = 1;
-
-
-}

+ 0 - 51
iwb-iot-project/src/main/java/com/iwbnet/iot/common/MqResponse/LoginResp.java

@@ -1,51 +0,0 @@
-package com.iwbnet.iot.common.MqResponse;
-
-import lombok.Data;
-
-
-
-public class LoginResp {
-    public String getResult() {
-        return result;
-    }
-
-    public void setResult(String result) {
-        this.result = result;
-    }
-
-    public boolean isIs_superuser() {
-        return is_superuser;
-    }
-
-    public void setIs_superuser(boolean is_superuser) {
-        this.is_superuser = is_superuser;
-    }
-
-    private String result;
-
-    private boolean is_superuser;
-    public LoginResp(String result) {
-        this.result = result;
-    }
-    public LoginResp(String result, boolean is_superuser) {
-        this.result = result;
-        this.is_superuser = is_superuser;
-    }
-
-    public static LoginResp allow(boolean is_superuser) {
-        return new LoginResp("allow", is_superuser);
-    }
-    public static LoginResp allow( ) {
-        return new LoginResp("allow");
-    }
-    public static LoginResp deny(boolean is_superuser) {
-        return new LoginResp("deny", is_superuser);
-    }
-    public static LoginResp deny() {
-        return new LoginResp("deny");
-    }
-    public static LoginResp ignore(boolean is_superuser) {
-        return new LoginResp("ignore", is_superuser);
-    }
-
-}

+ 0 - 52
iwb-iot-project/src/main/java/com/iwbnet/iot/common/ResponseData.java

@@ -1,52 +0,0 @@
-package com.iwbnet.iot.common;
-
-import lombok.Data;
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class ResponseData<T> extends BaseResponse {
-    /**
-     * 数据
-     */
-    private T data;
-
-
-    private String msg;
-
-    private ResponseData(CodeEnum code) {
-        super(code);
-    }
-
-    private ResponseData(CodeEnum code, T data) {
-        super(code);
-        this.data = data;
-    }
-    private ResponseData(CodeEnum code, T data,String msg) {
-        super(code);
-        this.data = data;
-        this.msg = msg;
-    }
-
-    /**
-     * 对外开放基础响应体已供调用,可用于增、删、改接口操作
-     */
-    public static BaseResponse out(CodeEnum code) {
-        return new BaseResponse(code);
-    }
-
-    /**
-     * 对外开放数据响应体已供调用,可用于查询数据实用,引用了范型设计,支持各种数据类型
-     */
-    public static <T> ResponseData<T> out(CodeEnum code, T data) {
-        return new ResponseData<>(code, data);
-    }
-    public static <T> ResponseData<T> success(T data) {
-        return new ResponseData<>(CodeEnum.SUCCESS, data);
-    }
-
-    public static <T> ResponseData<T> fail(T data,String msg) {
-        return new ResponseData<>(CodeEnum.FAIL, data,msg);
-    }
-}

+ 0 - 32
iwb-iot-project/src/main/java/com/iwbnet/iot/config/MqttConfig.java

@@ -1,32 +0,0 @@
-package com.iwbnet.iot.config;
-
-import cn.hutool.core.collection.CollectionUtil;
-import lombok.Data;
-import lombok.var;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-@Data
-@Component
-@ConfigurationProperties(prefix = "mqtt")
-public class MqttConfig {
-    private String host;
-
-    private String username;
-
-    private String password;
-
-    private String clientId;
-
-    private String sub;
-
-
-    public String[] getInitSub() {
-        if(this.getSub() == null) {
-            return null;
-        }
-        return this.getSub().split(",");
-    }
-}

+ 0 - 44
iwb-iot-project/src/main/java/com/iwbnet/iot/config/SwaggerConfig.java

@@ -1,44 +0,0 @@
-package com.iwbnet.iot.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-
-import springfox.documentation.oas.annotations.EnableOpenApi;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.service.Contact;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-
-@Configuration
-@EnableOpenApi
-public class SwaggerConfig {
-        /**
-     * 用于读取配置文件 application.properties 中 swagger 属性是否开启
-     */
-    @Value("${swagger.enabled}")
-    Boolean swaggerEnabled;
-    @Bean
-    public Docket desertsApi(){
-        return new Docket(DocumentationType.OAS_30)
-                .apiInfo(apiInfo())
-                .select()
-                .apis(RequestHandlerSelectors.basePackage("com.iwbnet.iot.controller"))
-                .paths(PathSelectors.any())
-                .build()
-                .groupName("iotServerGroup")
-                .enable(swaggerEnabled);
-    }
-
-    private ApiInfo apiInfo(){
-        return new ApiInfoBuilder()
-                .title("IOT-HTTP-TEST-Swagger3文档")
-                .description("文档描述信息")
-                .contact(new Contact("IWBNET-IOT", "#", "IWBNET@qq.com"))
-                .version("1.0")
-                .build();
-    }
-}

+ 0 - 77
iwb-iot-project/src/main/java/com/iwbnet/iot/controller/MqttController.java

@@ -1,77 +0,0 @@
-package com.iwbnet.iot.controller;
-
-import com.alibaba.fastjson2.JSON;
-import com.iwbnet.iot.common.MqResponse.LoginResp;
-import com.iwbnet.iot.common.ResponseData;
-import com.iwbnet.iot.entity.User;
-import com.iwbnet.iot.model.AuthClientDto;
-import com.iwbnet.iot.model.ClientLoginDto;
-import com.iwbnet.iot.model.TopicMsgDto;
-import com.iwbnet.iot.mqtt.MqttConnect;
-import com.iwbnet.iot.utils.Md5Util;
-import io.swagger.annotations.Api;
-import com.iwbnet.iot.mapper.UserMapper;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-@Slf4j
-@Api(tags = "mqtt-API")
-@RestController
-@RequestMapping("/mqtt")
-public class MqttController {
-    @Autowired
-    private UserMapper userMapper;
-
-
-    @Autowired
-    private MqttConnect mqttConnect;
-
-    @ApiOperation("认证")
-    @PostMapping(value = "/login",produces = "application/json")
-    public LoginResp authentication(@ApiParam(value = "访问设备客户端用户") @RequestBody ClientLoginDto client){
-        log.info("client:{},username:{},pwd:{},发起连接...",
-                client.getClientId(),client.getUsername(),client.getPassword());
-
-        User user = userMapper.selectUserByUsername(client.getUsername());
-        if(user==null){
-            return LoginResp.deny(false);
-        }
-        String password = user.getPassword().trim();
-        if(!password.equals(Md5Util.getMD5Str(client.getPassword()))){
-            return LoginResp.deny(false);
-        }
-        return LoginResp.allow(user.getIsSuperuser() == 1);
-
-    }
-    @ApiOperation("鉴权")
-    @PostMapping(value = "/auth",produces = "application/json")
-    public LoginResp auth(@RequestBody AuthClientDto client){
-        String jsonString = JSON.toJSONString(client);
-        log.info(jsonString);
-        return LoginResp.allow();
-    }
-
-    @ApiOperation("订阅主题")
-    @GetMapping(value = "/sub")
-    public ResponseData sub(@ApiParam(value = "主题",readOnly = true) @RequestParam(value = "topic") String topic){
-        log.info("订阅主题:{}",topic);
-        if (!mqttConnect.isConnect()) {
-            mqttConnect.connect("", "", null);
-        }
-        return  ResponseData.success(topic+ (mqttConnect.sub(topic)?"订阅成功":"订阅失败"));
-    }
-
-    @ApiOperation("发布主题payload")
-    @PostMapping(value = "/pub")
-    public ResponseData pub(@ApiParam(value = "主题+payload",required = true) @RequestBody TopicMsgDto input){
-        log.info("发布主题:{}",JSON.toJSONString(input));
-        if (!mqttConnect.isConnect()) {
-            mqttConnect.connect("", "", null);
-        }
-        return  ResponseData.success((mqttConnect.pub(input)?"发布成功":"发布失败"));
-    }
-
-}

+ 0 - 22
iwb-iot-project/src/main/java/com/iwbnet/iot/entity/Terminal.java

@@ -1,22 +0,0 @@
-package com.iwbnet.iot.entity;
-
- import lombok.Data;
-
-@Data
-//@Table("t_terminal")
-public class Terminal {
-    //@Id(keyType = KeyType.Auto)
-    private Long id;
-
-    private String clientId;
-
-    private Long userId;
-
-    private String terminalName;
-
-    private String terminalCode;
-
-    private Integer terminalType;
-
-    private Integer terminalStatus;
-}

+ 0 - 25
iwb-iot-project/src/main/java/com/iwbnet/iot/entity/User.java

@@ -1,25 +0,0 @@
-package com.iwbnet.iot.entity;
-
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-import lombok.Getter;
-
-//设备厂家账号信息
-@Getter
-//@Table("t_user")
-@ApiModel(value = "User", description = "设备厂家账号信息")
-public class User {
-    //@Id(keyType = KeyType.Auto)
-    private Long id;
-
-    private String username;
-
-    private String password;
-
-    private Integer status;
-
-    private Integer isSuperuser;
-
-
-
-}

+ 0 - 13
iwb-iot-project/src/main/java/com/iwbnet/iot/mapper/UserMapper.java

@@ -1,13 +0,0 @@
-package com.iwbnet.iot.mapper;
-
-import com.iwbnet.iot.entity.User;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface UserMapper {
-
-
-    @Select("select * from t_user where username = #{username}")
-    public User selectUserByUsername(String username);
-}

+ 0 - 46
iwb-iot-project/src/main/java/com/iwbnet/iot/model/AuthClientDto.java

@@ -1,46 +0,0 @@
-package com.iwbnet.iot.model;
-
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
- @ApiModel("mqtt认证实体")
-@Data
-public class AuthClientDto {
-    //${clientid}: 客户端的 ID
-//    ${username}: 客户端登录时用的用户名
-//    ${peerhost}: 客户端的源 IP 地址
-//    ${proto_name}: 客户端使用的协议名称。例如 MQTT,CoAP 等
-//    ${mountpoint}: 网关监听器的挂载点(主题前缀)
-//    ${action}: 当前执行的动作请求,例如 publish,subscribe
-//    ${topic}: 当前请求想要发布或订阅的主题(或主题过滤器)
-//    ${qos}: 当前请求想要发布或订阅的消息 QoS
-//    ${retain}: 当前请求想要发布的消息是否为保留消息
-    @ApiModelProperty("客户端的ID")
-    private String clientId;
-
-    @ApiModelProperty("客户端登录时用的用户名")
-    private String username;
-
-    @ApiModelProperty("当前请求想要发布或订阅的主题(或主题过滤器)")
-    private String topic;
-
-    @ApiModelProperty("当前执行的动作请求,例如publish,subscribe")
-    private String action;
-
-    @ApiModelProperty("客户端的源IP地址")
-    private String peerHost;
-
-    @ApiModelProperty("客户端使用的协议名称。例如 MQTT,CoAP 等")
-    private String protoName;
-
-    // @ApiModelProperty("网关监听器的挂载点(主题前缀)")
-    private String mountPoint;
-
-    @ApiModelProperty("当前请求想要发布或订阅的消息 QoS")
-    private String qos;
-
-    @ApiModelProperty("当前请求想要发布的消息是否为保留消息")
-    private String retain;
-
-}

+ 0 - 17
iwb-iot-project/src/main/java/com/iwbnet/iot/model/ClientLoginDto.java

@@ -1,17 +0,0 @@
-package com.iwbnet.iot.model;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@ApiModel("mqtt登录请求")
-@Data
-public class ClientLoginDto {
-     @ApiModelProperty("用户名")
-    private String username;
-
-      @ApiModelProperty("密码")
-    private String password;
-
-      @ApiModelProperty("客户端Id")
-    private String clientId;
-}

+ 0 - 16
iwb-iot-project/src/main/java/com/iwbnet/iot/model/TopicMsgDto.java

@@ -1,16 +0,0 @@
-package com.iwbnet.iot.model;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@ApiModel("mqtt订阅主题实体类")
-@Data
-public class TopicMsgDto {
-     @ApiModelProperty("主题")
-    private String topic;
-    @ApiModelProperty("消息信息")
-    private String payload;
-     @ApiModelProperty("QoS等级,0为至多一次,1为至少一次,2为确保只有一次")
-    private int qos;
-}

+ 0 - 32
iwb-iot-project/src/main/java/com/iwbnet/iot/mqtt/MqCallback.java

@@ -1,32 +0,0 @@
-package com.iwbnet.iot.mqtt;
-
-import lombok.extern.slf4j.Slf4j;
-import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
-import org.eclipse.paho.client.mqttv3.MqttCallback;
-import org.eclipse.paho.client.mqttv3.MqttMessage;
-
-@Slf4j
-public class MqCallback implements MqttCallback{
-    /**
-     * MQTT 断开连接会执行此方法
-     */
-    @Override
-    public void connectionLost(Throwable throwable) {
-        log.info("断开了MQTT连接 :{}", throwable.getMessage());
-        log.error(throwable.getMessage(), throwable);
-    }
-    /**
-     * subscribe订阅后得到的消息会执行到这里
-     */
-    @Override
-    public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception {
-        log.info("收到来自 " + topic + " 的消息:{}", new String(mqttMessage.getPayload()));
-    }
-    /**
-     * publish发布成功后会执行到这里
-     */
-    @Override
-    public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
-        log.info("发布消息成功");
-    }
-}

+ 0 - 179
iwb-iot-project/src/main/java/com/iwbnet/iot/mqtt/MqttConnect.java

@@ -1,179 +0,0 @@
-package com.iwbnet.iot.mqtt;
-
-import com.alibaba.fastjson2.JSON;
-import com.iwbnet.iot.config.MqttConfig;
-import com.iwbnet.iot.model.TopicMsgDto;
-import lombok.extern.slf4j.Slf4j;
-import org.eclipse.paho.client.mqttv3.*;
-import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PreDestroy;
-
-
-@Slf4j
-@Component
-public class MqttConnect {
-
-    @Autowired
-    private MqttConfig mqttConfig;
-
-    private MqttClient mqttClient;
-
-
-    public boolean isConnect() {
-        return mqttClient.isConnected();
-    }
-        /**
-     * 客户端connect连接mqtt服务器
-     *
-     * @param userName     用户名
-     * @param passWord     密码
-     * @param mqttCallback 回调函数
-     **/
-    public void connect(String userName, String passWord, MqttCallback mqttCallback){
-        if(userName.equals("") || passWord.equals("")) {
-            userName = mqttConfig.getUsername();
-            passWord = mqttConfig.getPassword();
-        }
-
-        try {
-            MqttConnectOptions options = mqttConnectOptions(userName, passWord);
-            if (mqttCallback == null) {
-                mqttClient.setCallback(new MqCallback());
-            } else {
-                mqttClient.setCallback(mqttCallback);
-            }
-            mqttClient.connect(options);
-        } catch (MqttException e) {
-            log.error(e.getMessage(), e);
-        }
-    }
-
-    /**
-     * 订阅默认主题
-     */
-    public void subInitTopic(){
-        try {
-
-            mqttClient.subscribe(mqttConfig.getInitSub());
-        } catch (MqttException e) {
-            log.error(e.getMessage(), e);
-        }
-    }
-
-
-
-    /**
-     * MQTT连接参数设置
-     */
-    private MqttConnectOptions mqttConnectOptions(String userName, String passWord) throws MqttException {
-        String host = "tcp://127.0.0.1:1883";
-        String clientId = "vbdsm-hj212-iot";
-        if(mqttConfig != null && mqttConfig.getHost() != null && !"".equals(mqttConfig.getHost())) {
-            host = mqttConfig.getHost();
-            clientId = mqttConfig.getClientId();
-        }
-        mqttClient = new MqttClient(host, clientId, new MemoryPersistence());
-        MqttConnectOptions options = new MqttConnectOptions();
-        options.setUserName(userName);
-        options.setPassword(passWord.toCharArray());
-        options.setConnectionTimeout(10);///默认:30
-        options.setAutomaticReconnect(true);//默认:false
-        options.setCleanSession(false);//默认:true
-        //options.setKeepAliveInterval(20);//默认:60
-        return options;
-    }
-
-     /**
-     * 关闭MQTT连接
-     */
-     @PreDestroy
-    public void close() throws MqttException {
-         log.info("关闭MQTT连接");
-        mqttClient.disconnect();
-        mqttClient.close();
-    }
-
-    /**
-     * 向某个主题发布消息 默认qos:1
-     *
-     * @param topic:发布的主题
-     * @param msg:发布的消息
-     */
-    public boolean pub(String topic, String msg)   {
-        return pub(topic, msg, 1);
-    }
-
-    public boolean pub(TopicMsgDto input)   {
-        String topic = input.getTopic();
-        String payLoad = input.getPayload();
-        if (payLoad == null) {
-            return false;
-        }
-        return pub(topic, payLoad, input.getQos());
-    }
-
-    /**
-     * 向某个主题发布消息
-     *
-     * @param topic: 发布的主题
-     * @param msg:   发布的消息
-     * @param qos:   消息质量    Qos:0、1、2
-     */
-    public boolean pub(String topic, String msg, int qos) {
-        MqttMessage mqttMessage = new MqttMessage();
-        mqttMessage.setQos(qos);
-        mqttMessage.setPayload(msg.getBytes());
-        MqttTopic mqttTopic = mqttClient.getTopic(topic);
-        try{
-            MqttDeliveryToken token = mqttTopic.publish(mqttMessage);
-            token.waitForCompletion();
-            return true;
-        }catch (MqttException e) {
-            log.error(e.getMessage(), e);
-        }
-        return false;
-    }
-
-    /**
-     * 订阅某一个主题 ,此方法默认的的Qos等级为:1
-     *
-     * @param topic 主题
-     */
-    public boolean sub(String topic)   {
-        try{
-            mqttClient.subscribe(topic);
-            return true;
-        }catch (MqttException e) {
-            log.error(e.getMessage(), e);
-        }
-        return false;
-    }
-
-    /**
-     * 订阅某一个主题,可携带Qos
-     *
-     * @param topic 所要订阅的主题
-     * @param qos   消息质量:0、1、2
-     */
-    public boolean sub(String topic, int qos)   {
-        try{
-            mqttClient.subscribe(topic, qos);
-            return true;
-        }catch (MqttException e) {
-            log.error(e.getMessage(), e);
-        }
-        return false;
-    }
-
-
-//    public void destroy() {
-//        try {
-//            this.close();
-//        } catch (MqttException e) {
-//            log.error(e.getMessage(), e);
-//        }
-//    }
-}

+ 0 - 9
iwb-iot-project/src/main/java/com/iwbnet/iot/service/IPayloadService.java

@@ -1,9 +0,0 @@
-package com.iwbnet.iot.service;
-
-
-public interface IPayloadService {
-
-
-
-    public void send(String topic, String payload);
-}

+ 0 - 24
iwb-iot-project/src/main/java/com/iwbnet/iot/utils/Md5Util.java

@@ -1,24 +0,0 @@
-package com.iwbnet.iot.utils;
-
-import java.math.BigInteger;
-import java.nio.charset.StandardCharsets;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-public class Md5Util {
-    public static String getMD5Str(String str) {
-        byte[] digest = null;
-        try {
-            MessageDigest md5 = MessageDigest.getInstance("md5");
-            digest = md5.digest(str.getBytes(StandardCharsets.UTF_8));
-        } catch (NoSuchAlgorithmException e) {
-            e.printStackTrace();
-        }
-        //16是表示转换为16进制数
-        String md5Str = null;
-        if (digest != null) {
-            md5Str = new BigInteger(1, digest).toString(16);
-        }
-        return md5Str;
-    }
-}

+ 0 - 29
iwb-iot-project/src/main/resources/application-dev.yml

@@ -1,29 +0,0 @@
-server:
-  port: 5080
-swagger:
-  enabled: true
-mybatis:
-  mapper-locations: classpath:mappers/*xml
-  type-aliases-package: com.iwbnet.iot.entity
-  configuration:
-    map-underscore-to-camel-case: true
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-# DataSource Config
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    url: jdbc:mysql://47.112.30.247:43308/iot_com?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
-    username: root
-    password: 123456
-    driver-class-name: com.mysql.cj.jdbc.Driver
-  mvc:
-    pathmatch:
-      matching-strategy: ant_path_matcher
-
-mqtt:
-  host: tcp://127.0.0.1:1883
-  username: admin
-  password: 123456
-  clientId: vbdsm-hj212-iot
-  sub: vbdsm/device/+/+,system/+/+
-

+ 0 - 3
iwb-iot-project/src/main/resources/application.yml

@@ -1,3 +0,0 @@
-spring:
-    profiles:
-        active: dev

+ 0 - 57
iwb-iot-project/src/main/resources/logback.xml

@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="60 seconds" debug="false">
-    <property name="rootLevel" value="INFO"/>
-    <property name="appName" value="vbdsm-hj212-IOT-server"/>
-    <contextName>${appName}</contextName>
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger- %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-        </filter>
-    </appender>
-
-    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <FileNamePattern>./logs/${appName}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
-            <maxFileSize>100MB</maxFileSize>
-            <maxHistory>30</maxHistory>
-            <totalSizeCap>2GB</totalSizeCap>
-        </rollingPolicy>
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>INFO</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <FileNamePattern>./logs/${appName}.%d{yyyy-MM-dd}.%i.error.log</FileNamePattern>
-            <maxFileSize>100MB</maxFileSize>
-            <maxHistory>30</maxHistory>
-            <totalSizeCap>2GB</totalSizeCap>
-        </rollingPolicy>
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <root level="info">
-        <appender-ref ref="STDOUT"/>
-        <appender-ref ref="INFO"/>
-        <appender-ref ref="ERROR"/>
-    </root>
-</configuration>

+ 0 - 6
iwb-iot-project/src/main/resources/static/index.html

@@ -1,6 +0,0 @@
-<html>
-<body>
-<h1>hello word!!!</h1>
-<p>this is a html page</p>
-</body>
-</html>

+ 0 - 13
iwb-iot-project/src/test/java/com/iwbnet/iot/IwbIotProjectApplicationTests.java

@@ -1,13 +0,0 @@
-package com.iwbnet.iot;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class IwbIotProjectApplicationTests {
-
-    @Test
-    void contextLoads() {
-    }
-
-}