Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mica
mica-mqtt
提交
6ee3d65b
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 搜索 >>
提交
6ee3d65b
编写于
7月 30, 2021
作者:
浅梦2013
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
代码优化。
上级
f8e3b77d
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
29 addition
and
49 deletion
+29
-49
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
...a/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
+0
-1
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServer.java
...ain/java/net/dreamlu/iot/mqtt/core/server/MqttServer.java
+3
-4
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerAioHandler.java
...et/dreamlu/iot/mqtt/core/server/MqttServerAioHandler.java
+3
-5
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerAioListener.java
...t/dreamlu/iot/mqtt/core/server/MqttServerAioListener.java
+8
-12
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerCreator.java
...a/net/dreamlu/iot/mqtt/core/server/MqttServerCreator.java
+4
-6
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/support/DefaultMqttServerProcessor.java
.../mqtt/core/server/support/DefaultMqttServerProcessor.java
+11
-21
未找到文件。
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
浏览文件 @
6ee3d65b
...
...
@@ -31,7 +31,6 @@ import org.tio.core.ssl.SslConfig;
import
org.tio.utils.hutool.StrUtil
;
import
org.tio.utils.thread.pool.DefaultThreadFactory
;
import
java.io.IOException
;
import
java.util.concurrent.CountDownLatch
;
import
java.util.concurrent.ScheduledThreadPoolExecutor
;
import
java.util.function.Consumer
;
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServer.java
浏览文件 @
6ee3d65b
...
...
@@ -46,12 +46,11 @@ public final class MqttServer {
private
final
ScheduledThreadPoolExecutor
executor
;
MqttServer
(
TioServer
tioServer
,
IMqttSessionManager
sessionManager
,
IMqttServerSubscribeManager
subscribeManager
,
MqttServerCreator
serverCreator
,
ScheduledThreadPoolExecutor
executor
)
{
this
.
tioServer
=
tioServer
;
this
.
sessionManager
=
se
ssionManager
;
this
.
subscribeManager
=
s
ubscribeManager
;
this
.
sessionManager
=
se
rverCreator
.
getSessionManager
()
;
this
.
subscribeManager
=
s
erverCreator
.
getSubscribeManager
()
;
this
.
executor
=
executor
;
}
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerAioHandler.java
浏览文件 @
6ee3d65b
...
...
@@ -39,12 +39,10 @@ public class MqttServerAioHandler implements ServerAioHandler {
private
final
ByteBufferAllocator
allocator
;
private
final
MqttServerProcessor
processor
;
public
MqttServerAioHandler
(
int
maxBytesInMessage
,
ByteBufferAllocator
bufferAllocator
,
MqttServerProcessor
processor
)
{
this
.
mqttDecoder
=
new
MqttDecoder
(
maxBytesInMessage
);
public
MqttServerAioHandler
(
MqttServerCreator
serverCreator
,
MqttServerProcessor
processor
)
{
this
.
mqttDecoder
=
new
MqttDecoder
(
serverCreator
.
getMaxBytesInMessage
());
this
.
mqttEncoder
=
MqttEncoder
.
INSTANCE
;
this
.
allocator
=
bufferAllocator
;
this
.
allocator
=
serverCreator
.
getBufferAllocator
()
;
this
.
processor
=
processor
;
}
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerAioListener.java
浏览文件 @
6ee3d65b
...
...
@@ -39,18 +39,14 @@ public class MqttServerAioListener extends DefaultAioListener {
private
final
IMqttSessionManager
sessionManager
;
private
final
IMqttServerSubscribeManager
subscribeManager
;
private
final
IMqttMessageDispatcher
messageDispatcher
;
private
final
IMqttConnectStatusListener
c
lien
tStatusListener
;
private
final
IMqttConnectStatusListener
c
onnec
tStatusListener
;
public
MqttServerAioListener
(
IMqttMessageStore
messageStore
,
IMqttSessionManager
sessionManager
,
IMqttServerSubscribeManager
subscribeManager
,
IMqttMessageDispatcher
messageDispatcher
,
IMqttConnectStatusListener
clientStatusListener
)
{
this
.
messageStore
=
messageStore
;
this
.
sessionManager
=
sessionManager
;
this
.
subscribeManager
=
subscribeManager
;
this
.
messageDispatcher
=
messageDispatcher
;
this
.
clientStatusListener
=
clientStatusListener
;
public
MqttServerAioListener
(
MqttServerCreator
serverCreator
)
{
this
.
messageStore
=
serverCreator
.
getMessageStore
();
this
.
sessionManager
=
serverCreator
.
getSessionManager
();
this
.
subscribeManager
=
serverCreator
.
getSubscribeManager
();
this
.
messageDispatcher
=
serverCreator
.
getMessageDispatcher
();
this
.
connectStatusListener
=
serverCreator
.
getConnectStatusListener
();
}
@Override
...
...
@@ -113,7 +109,7 @@ public class MqttServerAioListener extends DefaultAioListener {
private
void
notify
(
String
clientId
)
{
try
{
c
lien
tStatusListener
.
offline
(
clientId
);
c
onnec
tStatusListener
.
offline
(
clientId
);
}
catch
(
Throwable
throwable
)
{
logger
.
error
(
"Mqtt server clientId:{} offline notify error."
,
clientId
,
throwable
);
}
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerCreator.java
浏览文件 @
6ee3d65b
...
...
@@ -305,13 +305,11 @@ public class MqttServerCreator {
this
.
connectStatusListener
=
new
DefaultMqttConnectStatusListener
();
}
ScheduledThreadPoolExecutor
executor
=
new
ScheduledThreadPoolExecutor
(
2
,
DefaultThreadFactory
.
getInstance
(
"MqttServer"
));
DefaultMqttServerProcessor
serverProcessor
=
new
DefaultMqttServerProcessor
(
this
.
messageStore
,
this
.
sessionManager
,
this
.
authHandler
,
this
.
subscribeManager
,
this
.
messageDispatcher
,
this
.
connectStatusListener
,
this
.
messageListener
,
executor
);
DefaultMqttServerProcessor
serverProcessor
=
new
DefaultMqttServerProcessor
(
this
,
executor
);
// 1. 处理消息
ServerAioHandler
handler
=
new
MqttServerAioHandler
(
this
.
maxBytesInMessage
,
this
.
bufferAllocator
,
serverProcessor
);
ServerAioHandler
handler
=
new
MqttServerAioHandler
(
this
,
serverProcessor
);
// 2. t-io 监听
ServerAioListener
listener
=
new
MqttServerAioListener
(
this
.
messageStore
,
this
.
sessionManager
,
this
.
subscribeManager
,
this
.
messageDispatcher
,
this
.
connectStatusListener
);
ServerAioListener
listener
=
new
MqttServerAioListener
(
this
);
// 2. t-io 配置
ServerTioConfig
tioConfig
=
new
ServerTioConfig
(
this
.
name
,
handler
,
listener
);
// 4. 设置 t-io 心跳 timeout
...
...
@@ -338,7 +336,7 @@ public class MqttServerCreator {
}
catch
(
IOException
e
)
{
throw
new
IllegalStateException
(
"Mica mqtt server start fail."
,
e
);
}
MqttServer
mqttServer
=
new
MqttServer
(
tioServer
,
this
.
sessionManager
,
this
.
subscribeManager
,
executor
);
MqttServer
mqttServer
=
new
MqttServer
(
tioServer
,
this
,
executor
);
messageDispatcher
.
config
(
mqttServer
);
return
mqttServer
;
}
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/support/DefaultMqttServerProcessor.java
浏览文件 @
6ee3d65b
...
...
@@ -19,10 +19,7 @@ package net.dreamlu.iot.mqtt.core.server.support;
import
net.dreamlu.iot.mqtt.codec.*
;
import
net.dreamlu.iot.mqtt.core.common.MqttPendingPublish
;
import
net.dreamlu.iot.mqtt.core.common.MqttPendingQos2Publish
;
import
net.dreamlu.iot.mqtt.core.server.IMqttServerAuthHandler
;
import
net.dreamlu.iot.mqtt.core.server.IMqttServerSubscribeManager
;
import
net.dreamlu.iot.mqtt.core.server.MqttConst
;
import
net.dreamlu.iot.mqtt.core.server.MqttServerProcessor
;
import
net.dreamlu.iot.mqtt.core.server.*
;
import
net.dreamlu.iot.mqtt.core.server.dispatcher.IMqttMessageDispatcher
;
import
net.dreamlu.iot.mqtt.core.server.event.IMqttConnectStatusListener
;
import
net.dreamlu.iot.mqtt.core.server.event.IMqttMessageListener
;
...
...
@@ -53,25 +50,18 @@ public class DefaultMqttServerProcessor implements MqttServerProcessor {
private
final
IMqttServerAuthHandler
authHandler
;
private
final
IMqttServerSubscribeManager
subscribeManager
;
private
final
IMqttMessageDispatcher
messageDispatcher
;
private
final
IMqttConnectStatusListener
c
lien
tStatusListener
;
private
final
IMqttConnectStatusListener
c
onnec
tStatusListener
;
private
final
IMqttMessageListener
messageListener
;
private
final
ScheduledThreadPoolExecutor
executor
;
public
DefaultMqttServerProcessor
(
IMqttMessageStore
mqttMessageStore
,
IMqttSessionManager
sessionManager
,
IMqttServerAuthHandler
authHandler
,
IMqttServerSubscribeManager
subscribeManager
,
IMqttMessageDispatcher
messageDispatcher
,
IMqttConnectStatusListener
clientStatusListener
,
IMqttMessageListener
messageListener
,
ScheduledThreadPoolExecutor
executor
)
{
this
.
messageStore
=
mqttMessageStore
;
this
.
sessionManager
=
sessionManager
;
this
.
authHandler
=
authHandler
;
this
.
subscribeManager
=
subscribeManager
;
this
.
messageDispatcher
=
messageDispatcher
;
this
.
clientStatusListener
=
clientStatusListener
;
this
.
messageListener
=
messageListener
;
public
DefaultMqttServerProcessor
(
MqttServerCreator
serverCreator
,
ScheduledThreadPoolExecutor
executor
)
{
this
.
messageStore
=
serverCreator
.
getMessageStore
();
this
.
sessionManager
=
serverCreator
.
getSessionManager
();
this
.
authHandler
=
serverCreator
.
getAuthHandler
();
this
.
subscribeManager
=
serverCreator
.
getSubscribeManager
();
this
.
messageDispatcher
=
serverCreator
.
getMessageDispatcher
();
this
.
connectStatusListener
=
serverCreator
.
getConnectStatusListener
();
this
.
messageListener
=
serverCreator
.
getMessageListener
();
this
.
executor
=
executor
;
}
...
...
@@ -114,7 +104,7 @@ public class DefaultMqttServerProcessor implements MqttServerProcessor {
// 6. 返回 ack
connAckByReturnCode
(
clientId
,
context
,
MqttConnectReturnCode
.
CONNECTION_ACCEPTED
);
// 7. 在线状态
c
lien
tStatusListener
.
online
(
clientId
);
c
onnec
tStatusListener
.
online
(
clientId
);
}
private
void
connAckByReturnCode
(
String
clientId
,
ChannelContext
context
,
MqttConnectReturnCode
returnCode
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录