挂载点
名称 | 说明 | 执行时机 |
---|
client.connect | 处理连接报文 | 服务端收到客户端的连接报文时 |
client.connack | 下发连接应答 | 服务端准备下发连接应答报文时 |
client.connected | 成功接入 | 客户端认证完成并成功接入系统后 |
client.disconnected | 连接断开 | 客户端连接层在准备关闭时 |
client.authenticate | 连接认证 | 执行完 client.connect 后 |
client.check_acl | ACL 鉴权 | 执行 发布/订阅 操作前 |
client.subscribe | 订阅主题 | 收到订阅报文后,执行 client.check_acl 鉴权前 |
client.unsubscribe | 取消订阅 | 收到取消订阅报文后 |
session.created | 会话创建 | client.connected 执行完成,且创建新的会话后 |
session.subscribed | 会话订阅主题 | 完成订阅操作后 |
session.unsubscribed | 会话取消订阅 | 完成取消订阅操作后 |
session.resumed | 会话恢复 | client.connected 执行完成,且成功恢复旧的会话信息后 |
session.discarded | 会话被移除 | 会话由于被移除而终止后 |
session.takeovered | 会话被接管 | 会话由于被接管而终止后 |
session.terminated | 会话终止 | 会话由于其他原因被终止后 |
message.publish | 消息发布 | 服务端在发布(路由)消息前 |
message.delivered | 消息投递 | 消息准备投递到客户端前 |
message.acked | 消息回执 | 服务端在收到客户端发回的消息 ACK 后 |
message.dropped | 消息丢弃 | 发布出的消息被丢弃后 |
onProviderLoaded
request: broker {
version: "4.3.9-cc7b1aa9"
sysdescr: "EMQ X"
uptime: "0 seconds"
datetime: "2021-12-01 09:07:32"
}
onClientConnect 处理连接报文
request: conninfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
proto_name: "MQTT"
proto_ver: "4"
keepalive: 20
}
onClientAuthenticate 连接认证
request: clientinfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
password: "emqx_test_password"
peerhost: "127.0.0.1"
sockport: 1883
protocol: "mqtt"
anonymous: true
}
result: true
onClientConnack 下发连接应答
request: conninfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
proto_name: "MQTT"
proto_ver: "4"
keepalive: 20
}
result_code: "success"
onClientConnected 成功接入
request: clientinfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
protocol: "mqtt"
}
onSessionCreated 会话创建
request: clientinfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
protocol: "mqtt"
}
onClientCheckAcl ACL 鉴权
request: clientinfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
protocol: "mqtt"
}
type: SUBSCRIBE
topic: "testtopic/1"
result: true
onClientSubscribe 订阅主题
request: clientinfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
protocol: "mqtt"
}
topic_filters {
name: "testtopic/1"
qos: 1
}
onSessionSubscribed 会话订阅主题
request: clientinfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
protocol: "mqtt"
}
topic: "testtopic/1"
subopts {
qos: 1
}
onMessagePublish 消息发布
request: message {
node: "emqx@127.0.0.1"
id: "0005D20B5F22B6A8F49D0000028C0001"
qos: 1
from: "proceduer"
topic: "testtopic/1"
payload: "test"
timestamp: 1638321166137
}
onMessageDelivered 消息投递
request: clientinfo {
node: "emqx@127.0.0.1"
clientid: "proceduer"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
protocol: "mqtt"
}
message {
node: "emqx@127.0.0.1"
id: "0005D20B5F22B6A8F49D0000028C0001"
from: "proceduer"
topic: "testtopic/1"
payload: "hardcode payload by exhook-svr-java :)"
timestamp: 1638321166137
}
onClientDisconnected 断开链接
request: clientinfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
protocol: "mqtt"
}
reason: "normal"
onSessionTerminated 会话终止
request: clientinfo {
node: "emqx@127.0.0.1"
clientid: "client-0"
username: "emqx_test"
peerhost: "127.0.0.1"
sockport: 1883
protocol: "mqtt"
}
reason: "{shutdown,normal}"