客户端获取到的header中clientId 丢失

环境

  • EMQX 版本:4.3.9
  • 操作系统版本:centos7.9

问题描述

设备端发送的消息在header中包含clientId,我在客户端订阅的消息中能获取到header,但是没有clentId,请问订阅的消息对应的header 是emqx自己设定的,还是设备端的请求的header,如果需要在header中拿到clentId,我应该如何配置emqx?

不清楚你说的 header 是指什么,不过你可以参考下这篇帖子:从EMQX桥接至另一个MQTT服务器,没办法指定client id? - #3,来自 t1ger

或者使用规则引擎为每条消息自动添加 Client ID 字段,但这也会在一定程度上影响性能。

订阅的消息中,包含headers和payload 2个部分,payload 对应的消息内容,headers 中存放有mqtt_id,mqtt_receivedTopic,id 等信息,设备端发送的消息,会在headers中存放有clientId,我想知道
EMQX 在转发消息到订阅端的时候,是否能将设备端的headers一起转发。
EMQX中的规则引擎的clentId 只能写死,如何根据消息的clentId 动态设置?

image

emmm这个是 WebHook 吧,你这里配置的影响的是 WebHook 请求的内容,headers 也是 HTTP Headers。

就算是使用MQTT Broker ,如何动态转发clientId