From ce75f628ac2f07d49748537ff81e50e27b0ce080 Mon Sep 17 00:00:00 2001 From: xiwa Date: Sun, 31 Jul 2022 14:40:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0emqx=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=AD=89=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 10244 -> 8196 bytes data/components/.DS_Store | Bin 0 -> 6148 bytes .../iot-emqx-component/emqx_rule_data.json | 185 ++++++++++++++++++ iot-components/iot-emqx-component/readme.md | 6 + .../src/main/resources/application-dev.yml | 1 + .../src/main/resources/application-mysql.yml | 75 +++++++ .../src/main/resources/application.yml | 1 + 7 files changed, 268 insertions(+) create mode 100644 data/components/.DS_Store create mode 100644 iot-components/iot-emqx-component/emqx_rule_data.json create mode 100644 iot-components/iot-emqx-component/readme.md create mode 100644 iot-standalone/src/main/resources/application-mysql.yml diff --git a/.DS_Store b/.DS_Store index fafe254b03dd5fb4e494496e1c2e90fab98e97a9..54ee152c93b5829bb776a6b1ea78f26469e639c3 100755 GIT binary patch delta 106 zcmZn(XmOBWU|?W$DortDU;r^WfEYvza8E20o2aMA$g(kDH$NlGnh~fWh7kZMp%zg9 delta 1294 zcmbu9PfQ$T7{=dcq43Q>nQvv8!m^Z=l@u+|rNxT1vd zf4^tmGl?^)W+KAyywOJ#<)+} zGO3U)IkVYZKFc}3y907b=!=W-?r6_$_lArHKE2}B2iu3PvbrHJ=PZo)d4ZGJ*_`DR zb9E?Q4nW+7d&jN;UI#+fi}!?GujELe_}&6%TiX2uNSHAPvI4ccaX zi{2t+OpMKEt+{!tc(O89YeZL%8JVJaC~tV98S(?6uu|4!G@|Q|d(ue3)nI<^fvuTZ|Z{?r+9eQw0T`$^8A&3MDzo$Y>bp87-9=`P(SUZ z6pfQXB|1yz=>ok?%k&|AOkdDfbdA2IZ|FMxKtIw?^fUcJH&Klm)IuPLHf%*Zy3m6i zh@%gCupdJh#t07L5sV^@$8a2zu<$gdQN*)2jpy(@UP1D8yn#3I7B1mkEMXPz<1((| zGoM-jexwK1<9fj7+}Pj{R|`cO!fb>h9ZpPr|(%YOebm zJ@;B@dwEUY(%cemRonjb!A5_inUr}#c*iYk{ja0p4#5X3MdelP3~y7|2NJ&88Qw00 z4ES1aIIb{xS>-SULR(f>r+N zqjenb^~%V~+|4Rii#!|(_{F8NJ$6CmH+E+uudbr$68=k7IsCt?%5kYVQ~6Soi%hCu F{s9ZMD2xCA diff --git a/data/components/.DS_Store b/data/components/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a81c8a534480be65379bd23802f8227e73956865 GIT binary patch literal 6148 zcmeHKyG{c^3>-s>NHi%ax1dELaDiO6iozG<2Y3W%P>_(4`Z|6);|GY-g_Z*BlRdj$ zd-raN^%;OHw(BV{0WhX2;zP|)bX|2IN8u47m3z$WX>g9KLG)pV=APjikGMeF%b(#1 zH{7Wqwpep?k2&#@qX#}Mrc_;P7}w$%&2II+d41cw`1>3_Fuln@GLQ@;1IfTYXFzK& zWqjh8HW^3;l7TM<^nNH*#TwW-+SNg0EdX&uw+YAAOAw1Xh&8Ztq=zD&O7v8T7DGIp z{t|IDuygcuNHiZ3CrflFVyAQeV&RbLm^K+m2Ko#f`*fo9|Cahg|KCr_Su&6e{3!-x zv|KG0{G_O@gOAf%Tc~%`PhqTu(^x4cS}Ep4OY!NqxT0gO*TBxv(&@K!V*UsyFDc2u HZ!oY2GsYOT literal 0 HcmV?d00001 diff --git a/iot-components/iot-emqx-component/emqx_rule_data.json b/iot-components/iot-emqx-component/emqx_rule_data.json new file mode 100644 index 00000000..9db7184b --- /dev/null +++ b/iot-components/iot-emqx-component/emqx_rule_data.json @@ -0,0 +1,185 @@ +{ + "data":[ + { + "rawsql":"SELECT\n reason,\n clientid,\n username,\n peername,\n socketname\nFROM\n \"$events/client_connected\"", + "on_action_failed":"continue", + "metrics":[ + { + "speed_max":0, + "speed_last5m":0, + "speed":0, + "passed":0, + "node":"emqx@127.0.0.1", + "no_result":0, + "matched":0, + "failed":0, + "exception":0 + } + ], + "id":"rule:012980", + "for":[ + "$events/client_connected" + ], + "enabled":true, + "description":" 连接", + "actions":[ + { + "params":{ + "target_topic":"/sys/client/connected", + "target_qos":1, + "payload_tmpl":"{\"reason\":\"${reason}\",\"clientid\":\"${clientid}\",\"username\":\"${username}\",\"peername\":\"${peername}\",\"socketname\":\"${socketname}\"}" + }, + "name":"republish", + "metrics":[ + { + "taken":0, + "success":0, + "node":"emqx@127.0.0.1", + "failed":0 + } + ], + "id":"republish_16528854106752092", + "fallbacks":[ + + ] + } + ] + }, + { + "rawsql":"SELECT\n reason,\n clientid,\n username,\n peername,\n socketname\nFROM\n \"$events/client_disconnected\"", + "on_action_failed":"continue", + "metrics":[ + { + "speed_max":0, + "speed_last5m":0, + "speed":0, + "passed":0, + "node":"emqx@127.0.0.1", + "no_result":0, + "matched":0, + "failed":0, + "exception":0 + } + ], + "id":"rule:377397", + "for":[ + "$events/client_disconnected" + ], + "enabled":true, + "description":"断开连接", + "actions":[ + { + "params":{ + "target_topic":"/sys/client/disconnected", + "target_qos":0, + "payload_tmpl":"{\"reason\":\"${reason}\",\"clientid\":\"${clientid}\",\"username\":\"${username}\",\"peername\":\"${peername}\",\"socketname\":\"${socketname}\"}" + }, + "name":"republish", + "metrics":[ + { + "taken":0, + "success":0, + "node":"emqx@127.0.0.1", + "failed":0 + } + ], + "id":"republish_16528854190433372", + "fallbacks":[ + + ] + } + ] + }, + { + "rawsql":"SELECT\n clientid,\n username,\n topic,\n qos\nFROM\n \"$events/session_subscribed\"", + "on_action_failed":"continue", + "metrics":[ + { + "speed_max":0, + "speed_last5m":0, + "speed":0, + "passed":0, + "node":"emqx@127.0.0.1", + "no_result":0, + "matched":0, + "failed":0, + "exception":0 + } + ], + "id":"rule:758695", + "for":[ + "$events/session_subscribed" + ], + "enabled":true, + "description":"子设备注册成功后,订阅topic: /sys/{productKey}/{deviceName}/c/#", + "actions":[ + { + "params":{ + "target_topic":"/sys/session/subscribed", + "target_qos":1, + "payload_tmpl":"{\"username\":\"${username}\",\"topic\":\"${topic}\",\"qos\":\"${qos}\",\"clientid\":\"${clientid}\"}" + }, + "name":"republish", + "metrics":[ + { + "taken":0, + "success":0, + "node":"emqx@127.0.0.1", + "failed":0 + } + ], + "id":"republish_16530236276902029", + "fallbacks":[ + + ] + } + ] + }, + { + "rawsql":"SELECT\n clientid,\n username,\n topic,\n qos\nFROM\n \"$events/session_unsubscribed\"", + "on_action_failed":"continue", + "metrics":[ + { + "speed_max":0, + "speed_last5m":0, + "speed":0, + "passed":0, + "node":"emqx@127.0.0.1", + "no_result":0, + "matched":0, + "failed":0, + "exception":0 + } + ], + "id":"rule:514503", + "for":[ + "$events/session_unsubscribed" + ], + "enabled":true, + "description":"", + "actions":[ + { + "params":{ + "target_topic":"/sys/session/unsubscribed", + "target_qos":0, + "payload_tmpl":"{\"username\":\"${username}\",\"topic\":\"${topic}\",\"qos\":\"${qos}\",\"clientid\":\"${clientid}\"}" + }, + "name":"republish", + "metrics":[ + { + "taken":0, + "success":0, + "node":"emqx@127.0.0.1", + "failed":0 + } + ], + "id":"republish_16530237303922829", + "fallbacks":[ + + ] + } + ] + } + ], + "code":0 +} \ No newline at end of file diff --git a/iot-components/iot-emqx-component/readme.md b/iot-components/iot-emqx-component/readme.md new file mode 100644 index 00000000..1be0885d --- /dev/null +++ b/iot-components/iot-emqx-component/readme.md @@ -0,0 +1,6 @@ +## EMQX配置 + +接入emqx需要在EMQX的规则引擎界面新增订阅、取消订阅、连接、断开连接的消息转发。 + +配置内容见:emqx_rule_data.json + diff --git a/iot-standalone/src/main/resources/application-dev.yml b/iot-standalone/src/main/resources/application-dev.yml index 485e1d30..7dd8e9c7 100755 --- a/iot-standalone/src/main/resources/application-dev.yml +++ b/iot-standalone/src/main/resources/application-dev.yml @@ -22,6 +22,7 @@ spring: password: 123456 driverClassName: org.h2.Driver + #注: 切换数据库时需要将项目根目录中的.init文件删除再重启 ## 内置h2 web console设置 platform: h2 h2: diff --git a/iot-standalone/src/main/resources/application-mysql.yml b/iot-standalone/src/main/resources/application-mysql.yml new file mode 100644 index 00000000..48683e3e --- /dev/null +++ b/iot-standalone/src/main/resources/application-mysql.yml @@ -0,0 +1,75 @@ +server: + port: 8086 + +spring: + servlet: + multipart: + enabled: true + max-file-size: 10MB + max-request-size: 12MB + + #注: 切换数据库时需要将项目根目录中的.init文件删除再重启 + # <<==========mysql配置开始============== + datasource: + url: jdbc:mysql://127.0.0.1:3306/iotkit?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false + driverClassName: com.mysql.cj.jdbc.Driver + username: root + password: 123456 + validationQuery: SELECT 1 + testOnBorrow: true + jpa: + database: MySQL + database-platform: org.hibernate.dialect.MySQL5InnoDBDialect +# show-sql: true + hibernate: + ddl-auto: update + properties: + hibernate: + format_sql: true + # ============mysql配置结束============>> + + elasticsearch: + rest: + #使用内置es的配置 + uris: http://127.0.0.1:9200 + username: + password: + connection-timeout: 10s + + redis: + #使用内置redis的配置 + host: 127.0.0.1 + port: 6379 + database: 0 + password: + + mvc: + pathmatch: + matching-strategy: ant_path_matcher + +#图片存储用的是阿里云oss,如果需要上传产品图片才需要配置 +aliyun: + bucketId: iotkit-img + endpoint: oss-cn-shenzhen.aliyuncs.com + accessKeyId: 填写阿里云accessKeyId + accessKeySecret: 填写阿里云accessKeySecret + +sa-token: + # token名称 (同时也是cookie名称) + token-name: token + # token有效期,单位s 默认30天, -1代表永不过期 + timeout: 2592000 + # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 + activity-timeout: -1 + # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) + is-concurrent: true + # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) + is-share: false + # token风格 + token-style: uuid + # 是否输出操作日志 + is-log: false + +#认证中心地址 +oauth2: + auth-server-url: http://127.0.0.1:8086 diff --git a/iot-standalone/src/main/resources/application.yml b/iot-standalone/src/main/resources/application.yml index 10f7a303..f55c753a 100755 --- a/iot-standalone/src/main/resources/application.yml +++ b/iot-standalone/src/main/resources/application.yml @@ -8,6 +8,7 @@ spring: max-file-size: 10MB max-request-size: 12MB + #注: 切换数据库时需要将项目根目录中的.init文件删除再重启 # <<=======内置H2数据库连接设置开始========== jpa: # show-sql: true