Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mica
mica-mqtt
提交
b2669c9c
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 搜索 >>
提交
b2669c9c
编写于
8月 31, 2021
作者:
如梦技术
🐛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
mqtt client 添加 session 有效期。
上级
cf83fbc3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
32 addition
and
7 deletion
+32
-7
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientAioListener.java
...t/dreamlu/iot/mqtt/core/client/MqttClientAioListener.java
+19
-7
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
...a/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
+13
-0
未找到文件。
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientAioListener.java
浏览文件 @
b2669c9c
...
...
@@ -19,6 +19,7 @@ package net.dreamlu.iot.mqtt.core.client;
import
net.dreamlu.iot.mqtt.codec.MqttConnectMessage
;
import
net.dreamlu.iot.mqtt.codec.MqttMessageBuilders
;
import
net.dreamlu.iot.mqtt.codec.MqttProperties
;
import
net.dreamlu.iot.mqtt.codec.MqttVersion
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.tio.client.DefaultClientAioListener
;
...
...
@@ -38,8 +39,8 @@ public class MqttClientAioListener extends DefaultClientAioListener {
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
MqttClient
.
class
);
private
final
MqttConnectMessage
connectMessage
;
public
MqttClientAioListener
(
MqttClientCreator
mqttC
lientCreator
)
{
this
.
connectMessage
=
getConnectMessage
(
Objects
.
requireNonNull
(
mqttC
lientCreator
));
public
MqttClientAioListener
(
MqttClientCreator
c
lientCreator
)
{
this
.
connectMessage
=
getConnectMessage
(
Objects
.
requireNonNull
(
c
lientCreator
));
}
/**
...
...
@@ -50,13 +51,14 @@ public class MqttClientAioListener extends DefaultClientAioListener {
*/
private
static
MqttConnectMessage
getConnectMessage
(
MqttClientCreator
mqttClientCreator
)
{
MqttWillMessage
willMessage
=
mqttClientCreator
.
getWillMessage
();
MqttVersion
version
=
mqttClientCreator
.
getVersion
();
// 1. 建立连接后发送 mqtt 连接的消息
MqttMessageBuilders
.
ConnectBuilder
builder
=
MqttMessageBuilders
.
connect
()
.
clientId
(
mqttClientCreator
.
getClientId
())
.
username
(
mqttClientCreator
.
getUsername
())
.
keepAlive
(
mqttClientCreator
.
getKeepAliveSecs
())
.
cleanSession
(
mqttClientCreator
.
isCleanSession
())
.
protocolVersion
(
mqttClientCreator
.
getVersion
()
)
.
protocolVersion
(
version
)
.
willFlag
(
willMessage
!=
null
);
// 2. 密码
String
password
=
mqttClientCreator
.
getPassword
();
...
...
@@ -71,10 +73,20 @@ public class MqttClientAioListener extends DefaultClientAioListener {
.
willQoS
(
willMessage
.
getQos
())
.
willProperties
(
willMessage
.
getWillProperties
());
}
// 4. mqtt5 properties
MqttProperties
properties
=
mqttClientCreator
.
getProperties
();
if
(
properties
!=
null
)
{
builder
.
properties
(
properties
);
// 4. mqtt5 特性
if
(
MqttVersion
.
MQTT_5
==
version
)
{
MqttProperties
properties
=
mqttClientCreator
.
getProperties
();
// Session Expiry Interval
Integer
sessionExpiryInterval
=
mqttClientCreator
.
getSessionExpiryIntervalSecs
();
if
(
sessionExpiryInterval
!=
null
&&
sessionExpiryInterval
>
0
)
{
if
(
properties
==
null
)
{
properties
=
new
MqttProperties
();
}
properties
.
add
(
new
MqttProperties
.
IntegerProperty
(
MqttProperties
.
MqttPropertyType
.
SESSION_EXPIRY_INTERVAL
,
sessionExpiryInterval
));
}
if
(
properties
!=
null
)
{
builder
.
properties
(
properties
);
}
}
return
builder
.
build
();
}
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
浏览文件 @
b2669c9c
...
...
@@ -110,6 +110,10 @@ public final class MqttClientCreator {
* </p>
*/
private
boolean
cleanSession
=
true
;
/**
* mqtt 5.0 session 有效期,单位秒
*/
private
Integer
sessionExpiryIntervalSecs
;
/**
* 遗嘱消息
*/
...
...
@@ -191,6 +195,10 @@ public final class MqttClientCreator {
return
cleanSession
;
}
public
Integer
getSessionExpiryIntervalSecs
()
{
return
sessionExpiryIntervalSecs
;
}
public
MqttWillMessage
getWillMessage
()
{
return
willMessage
;
}
...
...
@@ -287,6 +295,11 @@ public final class MqttClientCreator {
return
this
;
}
public
MqttClientCreator
sessionExpiryIntervalSecs
(
Integer
sessionExpiryIntervalSecs
)
{
this
.
sessionExpiryIntervalSecs
=
sessionExpiryIntervalSecs
;
return
this
;
}
public
MqttClientCreator
willMessage
(
MqttWillMessage
willMessage
)
{
this
.
willMessage
=
willMessage
;
return
this
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录