WebHook
NanoMQ 提供了可拓展的事件驱动型 WebHook 功能,用户可通过规则配置 WebHook 的触发事件或消息主题。借助 WebHook,您可以轻松将 NanoMQ 与其他服务集成,构建复杂的事件驱动架构。
配置示例
hcl
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"
}
]
}
配置项
url
: Webhook 要发送 HTTP 请求的地址。该地址必须是可以正确处理 HTTP 请求的端点。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
(可选项):对于on_message_publish
事件,可以指定触发主题,即只有向此主题发布的消息才会触发 WebHook。
功能预告
TLS
在接下来的版本中,NanoMQ 将支持与 HTTP 身份验证相关的 TLS 配置项,敬请期待。
tls {
keyfile="/etc/certs/key.pem"
certfile="/etc/certs/cert.pem"
cacertfile="/etc/certs/cacert.pem"
}
事件
在接下来的版本中,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