Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mica
mica-mqtt
提交
10a1c5c1
mica-mqtt
项目概览
mica
/
mica-mqtt
通知
71
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
mica-mqtt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
10a1c5c1
编写于
3月 23, 2023
作者:
浅梦2013
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
http-api 不再强制依赖 `fastjson`
上级
c0bcdc53
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
48 addition
and
44 deletion
+48
-44
CHANGELOG.md
CHANGELOG.md
+1
-0
mica-mqtt-server/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerCreator.java
...a/net/dreamlu/iot/mqtt/core/server/MqttServerCreator.java
+15
-0
mica-mqtt-server/src/main/java/net/dreamlu/iot/mqtt/core/server/http/api/MqttHttpApi.java
...et/dreamlu/iot/mqtt/core/server/http/api/MqttHttpApi.java
+16
-19
mica-mqtt-server/src/main/java/net/dreamlu/iot/mqtt/core/server/http/api/result/Result.java
.../dreamlu/iot/mqtt/core/server/http/api/result/Result.java
+10
-14
mica-mqtt-server/src/main/java/net/dreamlu/iot/mqtt/core/server/http/core/MqttWebServer.java
...dreamlu/iot/mqtt/core/server/http/core/MqttWebServer.java
+5
-2
pom.xml
pom.xml
+1
-1
starter/jfinal-mica-mqtt-server/pom.xml
starter/jfinal-mica-mqtt-server/pom.xml
+0
-4
starter/mica-mqtt-server-spring-boot-starter/pom.xml
starter/mica-mqtt-server-spring-boot-starter/pom.xml
+0
-4
未找到文件。
CHANGELOG.md
浏览文件 @
10a1c5c1
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +3,7 @@
## 发行版本
## 发行版本
### v2.1.1 - 2023-04-08
### v2.1.1 - 2023-04-08
-
:sparkles: mica-mqtt-server http-api 不再强制依赖
`fastjson`
还支持
`Jackson`
、
`Fastjson2`
、
`Gson`
、
`hutool-json`
和自定义。
-
:sparkles: mica-mqtt-codec 删除
`net.dreamlu.iot.mqtt.codec.ByteBufferUtil`
,2.1.0 漏删。
-
:sparkles: mica-mqtt-codec 删除
`net.dreamlu.iot.mqtt.codec.ByteBufferUtil`
,2.1.0 漏删。
-
:sparkles: mica-mqtt-codec 兼容 qos大于0,messageId == 0,做 qos 降级处理,
`@那一刹的容颜`
反馈,详见 gitee #I6PFIH
-
:sparkles: mica-mqtt-codec 兼容 qos大于0,messageId == 0,做 qos 降级处理,
`@那一刹的容颜`
反馈,详见 gitee #I6PFIH
-
:sparkles: mica-mqtt-client 优化链接时的遗嘱消息构建,默认为 qos0。
-
:sparkles: mica-mqtt-client 优化链接时的遗嘱消息构建,默认为 qos0。
...
...
mica-mqtt-server/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerCreator.java
浏览文件 @
10a1c5c1
...
@@ -50,6 +50,8 @@ import org.tio.server.intf.TioServerHandler;
...
@@ -50,6 +50,8 @@ import org.tio.server.intf.TioServerHandler;
import
org.tio.server.intf.TioServerListener
;
import
org.tio.server.intf.TioServerListener
;
import
org.tio.utils.Threads
;
import
org.tio.utils.Threads
;
import
org.tio.utils.hutool.StrUtil
;
import
org.tio.utils.hutool.StrUtil
;
import
org.tio.utils.json.JsonAdapter
;
import
org.tio.utils.json.JsonUtil
;
import
org.tio.utils.timer.DefaultTimerTaskService
;
import
org.tio.utils.timer.DefaultTimerTaskService
;
import
org.tio.utils.timer.TimerTaskService
;
import
org.tio.utils.timer.TimerTaskService
;
...
@@ -200,6 +202,10 @@ public class MqttServerCreator {
...
@@ -200,6 +202,10 @@ public class MqttServerCreator {
* taskService
* taskService
*/
*/
private
TimerTaskService
taskService
;
private
TimerTaskService
taskService
;
/**
* json 处理器
*/
private
JsonAdapter
jsonAdapter
;
public
String
getName
()
{
public
String
getName
()
{
return
name
;
return
name
;
...
@@ -527,6 +533,15 @@ public class MqttServerCreator {
...
@@ -527,6 +533,15 @@ public class MqttServerCreator {
return
this
;
return
this
;
}
}
public
JsonAdapter
getJsonAdapter
()
{
return
jsonAdapter
;
}
public
MqttServerCreator
jsonAdapter
(
JsonAdapter
jsonAdapter
)
{
this
.
jsonAdapter
=
JsonUtil
.
getJsonAdapter
(
jsonAdapter
);
return
this
;
}
public
MqttServer
build
()
{
public
MqttServer
build
()
{
// 默认的节点名称,用于集群
// 默认的节点名称,用于集群
if
(
StrUtil
.
isBlank
(
this
.
nodeName
))
{
if
(
StrUtil
.
isBlank
(
this
.
nodeName
))
{
...
...
mica-mqtt-server/src/main/java/net/dreamlu/iot/mqtt/core/server/http/api/MqttHttpApi.java
浏览文件 @
10a1c5c1
...
@@ -16,7 +16,6 @@
...
@@ -16,7 +16,6 @@
package
net.dreamlu.iot.mqtt.core.server.http.api
;
package
net.dreamlu.iot.mqtt.core.server.http.api
;
import
com.alibaba.fastjson.JSON
;
import
net.dreamlu.iot.mqtt.core.server.MqttServerCreator
;
import
net.dreamlu.iot.mqtt.core.server.MqttServerCreator
;
import
net.dreamlu.iot.mqtt.core.server.dispatcher.IMqttMessageDispatcher
;
import
net.dreamlu.iot.mqtt.core.server.dispatcher.IMqttMessageDispatcher
;
import
net.dreamlu.iot.mqtt.core.server.enums.MessageType
;
import
net.dreamlu.iot.mqtt.core.server.enums.MessageType
;
...
@@ -31,13 +30,14 @@ import net.dreamlu.iot.mqtt.core.server.model.Subscribe;
...
@@ -31,13 +30,14 @@ import net.dreamlu.iot.mqtt.core.server.model.Subscribe;
import
net.dreamlu.iot.mqtt.core.server.session.IMqttSessionManager
;
import
net.dreamlu.iot.mqtt.core.server.session.IMqttSessionManager
;
import
net.dreamlu.iot.mqtt.core.util.PayloadEncode
;
import
net.dreamlu.iot.mqtt.core.util.PayloadEncode
;
import
net.dreamlu.iot.mqtt.core.util.TopicUtil
;
import
net.dreamlu.iot.mqtt.core.util.TopicUtil
;
import
org.tio.http.common.HttpConst
;
import
org.tio.http.common.HttpRequest
;
import
org.tio.http.common.HttpRequest
;
import
org.tio.http.common.HttpResponse
;
import
org.tio.http.common.HttpResponse
;
import
org.tio.http.common.Method
;
import
org.tio.http.common.Method
;
import
org.tio.utils.hutool.StrUtil
;
import
org.tio.utils.hutool.StrUtil
;
import
org.tio.utils.json.JsonUtil
;
import
java.nio.ByteBuffer
;
import
java.nio.ByteBuffer
;
import
java.nio.charset.StandardCharsets
;
import
java.util.List
;
import
java.util.List
;
import
java.util.function.Function
;
import
java.util.function.Function
;
...
@@ -77,7 +77,7 @@ public class MqttHttpApi {
...
@@ -77,7 +77,7 @@ public class MqttHttpApi {
*/
*/
public
HttpResponse
publish
(
HttpRequest
request
)
{
public
HttpResponse
publish
(
HttpRequest
request
)
{
PublishForm
form
=
readForm
(
request
,
(
requestBody
)
->
PublishForm
form
=
readForm
(
request
,
(
requestBody
)
->
J
SON
.
parseObject
(
requestBody
,
PublishForm
.
class
)
J
sonUtil
.
readValue
(
requestBody
,
PublishForm
.
class
)
);
);
if
(
form
==
null
)
{
if
(
form
==
null
)
{
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
...
@@ -100,10 +100,9 @@ public class MqttHttpApi {
...
@@ -100,10 +100,9 @@ public class MqttHttpApi {
* @return HttpResponse
* @return HttpResponse
*/
*/
public
HttpResponse
publishBatch
(
HttpRequest
request
)
{
public
HttpResponse
publishBatch
(
HttpRequest
request
)
{
List
<
PublishForm
>
formList
=
readForm
(
request
,
(
requestBody
)
->
{
List
<
PublishForm
>
formList
=
readForm
(
request
,
(
requestBody
)
->
String
jsonBody
=
new
String
(
requestBody
,
StandardCharsets
.
UTF_8
);
JsonUtil
.
readList
(
requestBody
,
PublishForm
.
class
)
return
JSON
.
parseArray
(
jsonBody
,
PublishForm
.
class
);
);
});
if
(
formList
==
null
||
formList
.
isEmpty
())
{
if
(
formList
==
null
||
formList
.
isEmpty
())
{
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
}
}
...
@@ -147,7 +146,7 @@ public class MqttHttpApi {
...
@@ -147,7 +146,7 @@ public class MqttHttpApi {
*/
*/
public
HttpResponse
subscribe
(
HttpRequest
request
)
{
public
HttpResponse
subscribe
(
HttpRequest
request
)
{
SubscribeForm
form
=
readForm
(
request
,
(
requestBody
)
->
SubscribeForm
form
=
readForm
(
request
,
(
requestBody
)
->
J
SON
.
parseObject
(
requestBody
,
SubscribeForm
.
class
)
J
sonUtil
.
readValue
(
requestBody
,
SubscribeForm
.
class
)
);
);
if
(
form
==
null
)
{
if
(
form
==
null
)
{
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
...
@@ -175,10 +174,9 @@ public class MqttHttpApi {
...
@@ -175,10 +174,9 @@ public class MqttHttpApi {
* @return HttpResponse
* @return HttpResponse
*/
*/
public
HttpResponse
subscribeBatch
(
HttpRequest
request
)
{
public
HttpResponse
subscribeBatch
(
HttpRequest
request
)
{
List
<
SubscribeForm
>
formList
=
readForm
(
request
,
(
requestBody
)
->
{
List
<
SubscribeForm
>
formList
=
readForm
(
request
,
(
requestBody
)
->
String
jsonBody
=
new
String
(
requestBody
,
StandardCharsets
.
UTF_8
);
JsonUtil
.
readList
(
requestBody
,
SubscribeForm
.
class
)
return
JSON
.
parseArray
(
jsonBody
,
SubscribeForm
.
class
);
);
});
if
(
formList
==
null
||
formList
.
isEmpty
())
{
if
(
formList
==
null
||
formList
.
isEmpty
())
{
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
}
}
...
@@ -212,7 +210,7 @@ public class MqttHttpApi {
...
@@ -212,7 +210,7 @@ public class MqttHttpApi {
*/
*/
public
HttpResponse
unsubscribe
(
HttpRequest
request
)
{
public
HttpResponse
unsubscribe
(
HttpRequest
request
)
{
BaseForm
form
=
readForm
(
request
,
(
requestBody
)
->
BaseForm
form
=
readForm
(
request
,
(
requestBody
)
->
J
SON
.
parseObject
(
requestBody
,
BaseForm
.
class
)
J
sonUtil
.
readValue
(
requestBody
,
BaseForm
.
class
)
);
);
if
(
form
==
null
)
{
if
(
form
==
null
)
{
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
...
@@ -236,10 +234,9 @@ public class MqttHttpApi {
...
@@ -236,10 +234,9 @@ public class MqttHttpApi {
* @return HttpResponse
* @return HttpResponse
*/
*/
public
HttpResponse
unsubscribeBatch
(
HttpRequest
request
)
{
public
HttpResponse
unsubscribeBatch
(
HttpRequest
request
)
{
List
<
BaseForm
>
formList
=
readForm
(
request
,
(
requestBody
)
->
{
List
<
BaseForm
>
formList
=
readForm
(
request
,
(
requestBody
)
->
String
jsonBody
=
new
String
(
requestBody
,
StandardCharsets
.
UTF_8
);
JsonUtil
.
readList
(
requestBody
,
BaseForm
.
class
)
return
JSON
.
parseArray
(
jsonBody
,
BaseForm
.
class
);
);
});
if
(
formList
==
null
||
formList
.
isEmpty
())
{
if
(
formList
==
null
||
formList
.
isEmpty
())
{
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
return
Result
.
fail
(
request
,
ResultCode
.
E101
);
}
}
...
@@ -317,12 +314,12 @@ public class MqttHttpApi {
...
@@ -317,12 +314,12 @@ public class MqttHttpApi {
* @param <T> 泛型
* @param <T> 泛型
* @return 表单
* @return 表单
*/
*/
private
static
<
T
>
T
readForm
(
HttpRequest
request
,
Function
<
byte
[]
,
T
>
function
)
{
private
static
<
T
>
T
readForm
(
HttpRequest
request
,
Function
<
String
,
T
>
function
)
{
byte
[]
requestBody
=
request
.
getBody
();
byte
[]
requestBody
=
request
.
getBody
();
if
(
requestBody
==
null
)
{
if
(
requestBody
==
null
)
{
return
null
;
return
null
;
}
}
return
function
.
apply
(
requestBody
);
return
function
.
apply
(
new
String
(
requestBody
,
HttpConst
.
CHARSET
)
);
}
}
/**
/**
...
...
mica-mqtt-server/src/main/java/net/dreamlu/iot/mqtt/core/server/http/api/result/Result.java
浏览文件 @
10a1c5c1
...
@@ -16,15 +16,12 @@
...
@@ -16,15 +16,12 @@
package
net.dreamlu.iot.mqtt.core.server.http.api.result
;
package
net.dreamlu.iot.mqtt.core.server.http.api.result
;
import
com.alibaba.fastjson.JSONObject
;
import
net.dreamlu.iot.mqtt.core.server.http.api.code.ResultCode
;
import
net.dreamlu.iot.mqtt.core.server.http.api.code.ResultCode
;
import
org.tio.http.common.HeaderName
;
import
org.tio.http.common.*
;
import
org.tio.http.common.HeaderValue
;
import
org.tio.utils.json.JsonUtil
;
import
org.tio.http.common.HttpRequest
;
import
org.tio.http.common.HttpResponse
;
import
java.
nio.charset.Charset
;
import
java.
util.HashMap
;
import
java.
nio.charset.StandardCharsets
;
import
java.
util.Map
;
/**
/**
* api Result
* api Result
...
@@ -32,7 +29,6 @@ import java.nio.charset.StandardCharsets;
...
@@ -32,7 +29,6 @@ import java.nio.charset.StandardCharsets;
* @author L.cm
* @author L.cm
*/
*/
public
final
class
Result
{
public
final
class
Result
{
private
static
final
Charset
UTF_8
=
StandardCharsets
.
UTF_8
;
/**
/**
* 响应成功
* 响应成功
...
@@ -51,7 +47,7 @@ public final class Result {
...
@@ -51,7 +47,7 @@ public final class Result {
*/
*/
public
static
HttpResponse
ok
(
HttpResponse
response
)
{
public
static
HttpResponse
ok
(
HttpResponse
response
)
{
ResultCode
resultCode
=
ResultCode
.
SUCCESS
;
ResultCode
resultCode
=
ResultCode
.
SUCCESS
;
JSONObject
json
=
new
JSONObject
(
);
Map
<
String
,
Object
>
json
=
new
HashMap
<>(
2
);
json
.
put
(
"code"
,
resultCode
.
getResultCode
());
json
.
put
(
"code"
,
resultCode
.
getResultCode
());
return
result
(
response
,
resultCode
,
json
);
return
result
(
response
,
resultCode
,
json
);
}
}
...
@@ -86,7 +82,7 @@ public final class Result {
...
@@ -86,7 +82,7 @@ public final class Result {
*/
*/
public
static
HttpResponse
ok
(
HttpResponse
response
,
Object
data
)
{
public
static
HttpResponse
ok
(
HttpResponse
response
,
Object
data
)
{
ResultCode
resultCode
=
ResultCode
.
SUCCESS
;
ResultCode
resultCode
=
ResultCode
.
SUCCESS
;
JSONObject
json
=
new
JSONObject
(
);
Map
<
String
,
Object
>
json
=
new
HashMap
<>(
4
);
json
.
put
(
"code"
,
resultCode
.
getResultCode
());
json
.
put
(
"code"
,
resultCode
.
getResultCode
());
json
.
put
(
"data"
,
data
);
json
.
put
(
"data"
,
data
);
return
result
(
response
,
resultCode
,
json
);
return
result
(
response
,
resultCode
,
json
);
...
@@ -121,16 +117,16 @@ public final class Result {
...
@@ -121,16 +117,16 @@ public final class Result {
* @return HttpResponse
* @return HttpResponse
*/
*/
public
static
HttpResponse
fail
(
HttpResponse
response
,
ResultCode
resultCode
)
{
public
static
HttpResponse
fail
(
HttpResponse
response
,
ResultCode
resultCode
)
{
JSONObject
json
=
new
JSONObject
(
);
Map
<
String
,
Object
>
json
=
new
HashMap
<>(
2
);
json
.
put
(
"code"
,
resultCode
.
getResultCode
());
json
.
put
(
"code"
,
resultCode
.
getResultCode
());
return
result
(
response
,
resultCode
,
json
);
return
result
(
response
,
resultCode
,
json
);
}
}
private
static
HttpResponse
result
(
HttpResponse
response
,
ResultCode
resultCode
,
JSONObject
json
)
{
private
static
HttpResponse
result
(
HttpResponse
response
,
ResultCode
resultCode
,
Object
value
)
{
response
.
addHeader
(
HeaderName
.
Content_Type
,
HeaderValue
.
Content_Type
.
TEXT_PLAIN_JSON
);
response
.
addHeader
(
HeaderName
.
Content_Type
,
HeaderValue
.
Content_Type
.
TEXT_PLAIN_JSON
);
response
.
setStatus
(
resultCode
.
getStatusCode
());
response
.
setStatus
(
resultCode
.
getStatusCode
());
response
.
setBody
(
json
.
toJSONString
().
getBytes
(
UTF_8
));
response
.
setBody
(
JsonUtil
.
toJsonString
(
value
).
getBytes
(
HttpConst
.
CHARSET
));
response
.
setCharset
(
UTF_8
);
response
.
setCharset
(
HttpConst
.
CHARSET
);
return
response
;
return
response
;
}
}
...
...
mica-mqtt-server/src/main/java/net/dreamlu/iot/mqtt/core/server/http/core/MqttWebServer.java
浏览文件 @
10a1c5c1
...
@@ -206,6 +206,7 @@ import org.tio.http.common.handler.HttpRequestHandler;
...
@@ -206,6 +206,7 @@ import org.tio.http.common.handler.HttpRequestHandler;
import
org.tio.server.TioServer
;
import
org.tio.server.TioServer
;
import
org.tio.server.TioServerConfig
;
import
org.tio.server.TioServerConfig
;
import
org.tio.server.intf.TioServerListener
;
import
org.tio.server.intf.TioServerListener
;
import
org.tio.utils.json.JsonUtil
;
import
org.tio.utils.thread.pool.SynThreadPoolExecutor
;
import
org.tio.utils.thread.pool.SynThreadPoolExecutor
;
import
org.tio.websocket.server.handler.IWsMsgHandler
;
import
org.tio.websocket.server.handler.IWsMsgHandler
;
...
@@ -284,10 +285,12 @@ public class MqttWebServer {
...
@@ -284,10 +285,12 @@ public class MqttWebServer {
public
static
MqttWebServer
config
(
MqttServerCreator
serverCreator
,
TioServerConfig
mqttServerConfig
)
{
public
static
MqttWebServer
config
(
MqttServerCreator
serverCreator
,
TioServerConfig
mqttServerConfig
)
{
// 1. 判断是否开启 http
// 1. 判断是否开启 http
if
(
serverCreator
.
isHttpEnable
())
{
if
(
serverCreator
.
isHttpEnable
())
{
// 1.1 http 路由配置
// 1.1 http-api 用到 json
serverCreator
.
jsonAdapter
(
JsonUtil
.
getJsonAdapter
(
serverCreator
.
getJsonAdapter
()));
// 1.2 http 路由配置
MqttHttpApi
httpApi
=
new
MqttHttpApi
(
serverCreator
);
MqttHttpApi
httpApi
=
new
MqttHttpApi
(
serverCreator
);
httpApi
.
register
();
httpApi
.
register
();
// 1.
2
认证配置
// 1.
3
认证配置
String
username
=
serverCreator
.
getHttpBasicUsername
();
String
username
=
serverCreator
.
getHttpBasicUsername
();
String
password
=
serverCreator
.
getHttpBasicPassword
();
String
password
=
serverCreator
.
getHttpBasicPassword
();
if
(
Objects
.
nonNull
(
username
)
&&
Objects
.
nonNull
(
password
))
{
if
(
Objects
.
nonNull
(
username
)
&&
Objects
.
nonNull
(
password
))
{
...
...
pom.xml
浏览文件 @
10a1c5c1
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<maven-flatten.version>
1.2.2
</maven-flatten.version>
<maven-flatten.version>
1.2.2
</maven-flatten.version>
<!-- mica-net version -->
<!-- mica-net version -->
<mica-net.version>
0.0.
8
</mica-net.version>
<mica-net.version>
0.0.
9-SNAPSHOT
</mica-net.version>
<mica.version>
2.7.9
</mica.version>
<mica.version>
2.7.9
</mica.version>
<mica.auto.version>
2.3.2
</mica.auto.version>
<mica.auto.version>
2.3.2
</mica.auto.version>
<spring.boot.version>
2.7.9
</spring.boot.version>
<spring.boot.version>
2.7.9
</spring.boot.version>
...
...
starter/jfinal-mica-mqtt-server/pom.xml
浏览文件 @
10a1c5c1
...
@@ -22,10 +22,6 @@
...
@@ -22,10 +22,6 @@
<groupId>
net.dreamlu
</groupId>
<groupId>
net.dreamlu
</groupId>
<artifactId>
mica-net-http
</artifactId>
<artifactId>
mica-net-http
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
</dependency>
<dependency>
<dependency>
<groupId>
com.jfinal
</groupId>
<groupId>
com.jfinal
</groupId>
<artifactId>
jfinal
</artifactId>
<artifactId>
jfinal
</artifactId>
...
...
starter/mica-mqtt-server-spring-boot-starter/pom.xml
浏览文件 @
10a1c5c1
...
@@ -22,10 +22,6 @@
...
@@ -22,10 +22,6 @@
<groupId>
net.dreamlu
</groupId>
<groupId>
net.dreamlu
</groupId>
<artifactId>
mica-net-http
</artifactId>
<artifactId>
mica-net-http
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-autoconfigure
</artifactId>
<artifactId>
spring-boot-autoconfigure
</artifactId>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录