主题重写的数量的上限是否可以修改?

在 EMQX 5.1.3 版本中,无论是通过API 还是 Dashboard 都无法设置超过 20个的主题重写,这个能否放开限制?

背景:目前设备 是连接到 电信AEP的MQTT上的,我们向替换电信AEP平台,直接使用自己的平台。
在设备连接电信AEP平台的过程中,是无法通过主题来区分设备或产品的,设备的唯一性通过 clientId 来区分的。我看电信AEP也是使用了你们的产品,能否方便说下是否也是使用主题重写来实现这个功能?

这个20是写死的,写大了会影响性能,以后应该也不会改。
如果非要改,可以自己改了源码编译一下。

https://github.com/emqx/emqx/blob/master/apps/emqx_modules/src/emqx_rewrite_api.erl#L28

实现什么功能,能展开说说么

就是上面背景说的,怎么样通过 clientId 在服务端订阅的时候区分每一个设备,目前每个设备都是订阅相同的主题,只是clientId 不一致。
设备订阅的主题如下:


目前我重写的策略如下:
{
“action”: “publish”,
“dest_topic”: “smoke_state_report/${clientId}”,
“re”: “.+”,
“source_topic”: “smoke_state_report”
}
{
“action”: “subscribe”,
“dest_topic”: “config_down/${clientId}”,
“re”: “.+”,
“source_topic”: “config_down”
}
这样的话,服务端就可以通过订阅 smoke_state_report/+ 通配符订阅获取这个消息是哪个设备发送的

可以啊。把 clientid 重写到 topic 里面就是主题重写的一个典型应用。

但是我要重写的主题有点多,目前就有20个了,之后的话估计有100多个,除了主题重写还有其他方法么

应该没有了。