# WebHook
NanoMQ 提供了可拓展到事件驱动型 WebHook 接口,用户可通过规则配置 WebHook 的触发事件或消息主题。借助 WebHook,您可轻松将 NanoMQ 与其他服务集成,构建复杂的事件驱动架构。
# 配置示例
webhook = {
url = "http://127.0.0.1:80" # WebHook 将向此 URL 发送 HTTP 请求
headers.content-type = "application/json" # HTTP 头(请求内容类型)
body.encoding = "plain" # Payload 编码方式
pool_size = 32 # 连接池大小
events = [
{
event = "on_message_publish" # 事件类型
topic = "a/b/c" # 此事件适用的主题
}
{
event = "on_client_connack" # 收到客户端 ACK 时触发 WebHook
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 配置项
url
:Webhook URL。headers.content-type
: 定义请求内容类型的 HTTP 头,如,"application/json",表示 HTTP 请求的 Payload 将被格式化为 JSON 对象。body.encoding
:指定 HTTP 体中 Payload 字段的编码格式。此字段仅针对on_message_publish
和on_message_delivered
事件有效。取值:plain
、base64
或base62
。pool_size
:指定连接进程池的大小,即 WebHook 可以与url
指定的端点维持的并发连接数量。默认值:32。events
:一组事件对象的数组,每个对象指定一个将触发 WebHook 的事件:event
: 将触发 WebHook 的事件的名称,取值:on_client_connack
on_client_disconnected
on_message_publish
topic
(Optional):对于on_message_publish
事件,您可以指定触发主题,即只有向此主题发布的消息才会触发 WebHook。
# 功能预告
TLS
在接下来的版本中,NanoMQ 将支持与 HTTP 身份验证相关的 TLS 配置项,敬请期待。
tls {
keyfile="/etc/certs/key.pem"
certfile="/etc/certs/cert.pem"
cacertfile="/etc/certs/cacert.pem"
}
1
2
3
4
5
2
3
4
5
事件
在接下来的版本中,NanoMQ 将支持更多的事件类型:
on_client_connect
on_client_connected
on_client_subscribe
on_client_unsubscribe
on_session_subscribed
on_session_unsubscribed
on_session_terminated
on_message_delivered
on_message_acked