Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mica
mica-mqtt
提交
d9d81bef
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 搜索 >>
提交
d9d81bef
编写于
8月 13, 2022
作者:
如梦技术
🐛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
添加示例
上级
74f2f254
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
56 addition
and
0 deletion
+56
-0
example/mica-mqtt-example/src/main/java/net/dreamlu/iot/mqtt/server/MqttMessageInterceptor.java
...a/net/dreamlu/iot/mqtt/server/MqttMessageInterceptor.java
+54
-0
example/mica-mqtt-example/src/main/java/net/dreamlu/iot/mqtt/server/MqttServerTest.java
...main/java/net/dreamlu/iot/mqtt/server/MqttServerTest.java
+2
-0
未找到文件。
example/mica-mqtt-example/src/main/java/net/dreamlu/iot/mqtt/server/MqttMessageInterceptor.java
0 → 100644
浏览文件 @
d9d81bef
/*
* Copyright (c) 2019-2029, Dreamlu 卢春梦 (596392912@qq.com & dreamlu.net).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
net.dreamlu.iot.mqtt.server
;
import
net.dreamlu.iot.mqtt.codec.MqttMessage
;
import
net.dreamlu.iot.mqtt.core.server.interceptor.IMqttMessageInterceptor
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.tio.core.ChannelContext
;
/**
* mqtt 消息拦截器
*
* @author L.cm
*/
public
class
MqttMessageInterceptor
implements
IMqttMessageInterceptor
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
MqttMessageInterceptor
.
class
);
@Override
public
void
onAfterReceivedBytes
(
ChannelContext
context
,
int
receivedBytes
)
throws
Exception
{
// 注意:此时 clientId 可能为空
String
clientId
=
context
.
getBsId
();
// ChannelStat channelStat = context.stat;
// 自定义规则,超限是可用 Tio.remove(context, "xxx超限"); 断开连接。
logger
.
info
(
"===接收 client:{} clientId:{} data:{}b"
,
context
.
getClientNode
(),
clientId
,
receivedBytes
);
}
@Override
public
void
onAfterDecoded
(
ChannelContext
context
,
MqttMessage
message
,
int
packetSize
)
{
// 注意:此时 clientId 可能为空
String
clientId
=
context
.
getBsId
();
logger
.
info
(
"===解码 client:{} clientId:{} message:{}"
,
context
.
getClientNode
(),
clientId
,
message
);
}
@Override
public
void
onAfterHandled
(
ChannelContext
context
,
MqttMessage
message
,
long
cost
)
throws
Exception
{
String
clientId
=
context
.
getBsId
();
logger
.
info
(
"===处理完成 ip:{} clientId:{} message:{} 耗时:{}"
,
context
.
getClientNode
(),
clientId
,
message
,
cost
);
}
}
example/mica-mqtt-example/src/main/java/net/dreamlu/iot/mqtt/server/MqttServerTest.java
浏览文件 @
d9d81bef
...
...
@@ -54,6 +54,8 @@ public class MqttServerTest {
})
// 客户端连接状态监听
.
connectStatusListener
(
new
MqttConnectStatusListener
())
// 自定义消息拦截器
// .addInterceptor(new MqttMessageInterceptor())
// 开启 http
.
httpEnable
(
true
)
// http basic 认证,自定义认证,实现 HttpFilter, 注册到 MqttHttpRoutes 即可
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录