如何动态修改每个客户端连接的mountpoint

版本:5.1.0
在emqx调用HTTP服务端认证接口通过后,服务端如何动态修改每个client连接的mountpoint

5.x 不支持动态更改 mountpoint,因为在 5.x 中 mountpoint 是在 Listener 层面生效的,所以在一个客户端连接存续期间,mountpoint 无法更改。

那有什么替代方案吗,只能 在订阅发布的时候 都去重写这个topic吗

那如果 是在订阅发布的时候 都去重写这个 topic 因为涉及到查查业务 会不会 对性能影响很大

  1. 开启多个 MQTT Listener 的方式,让客户端连接时就固定它的 mountpoint。
  2. 使用 topicwrite 在 发布/订阅 时改写主题,在 rewrite 规则多,且吞吐量大的时候会有一定性能影响。可以预估一下你业务的吞吐量,使用 gethub/emqtt-bench 进行压力测试尝试一下。
  3. 使用规则引擎的 republish 功能对消息进行重新发布,这个最灵活,但性能消耗也最大。