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 # 连接池大小
cancel_timeout = 5000 # HTTP 连接最大过期时间
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 对象。cancel_timeout: HTTP请求最大过期时间 (ms)body.encoding:HTTP 请求中 Payload 字段的编码格式。此字段仅对on_message_publish和on_message_delivered事件有效。有效值:plain、base64或base62。pool_size:连接进程池的大小,即 WebHook 可以与url指定的端点维持的并发连接数量。默认值:32。events:事件对象的数组,每个对象指定一个将触发 WebHook 的事件:event: 将触发 WebHook 的事件的类型,取值:on_client_connackon_client_disconnectedon_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_connecton_client_connectedon_client_subscribeon_client_unsubscribeon_session_subscribedon_session_unsubscribedon_session_terminatedon_message_deliveredon_message_acked