命名空间疑问

docker v6.1.1 启用命名空间 并作为挂载点


问题:

  1. 普通topic: 发布/消费符合设定: 会自动处理命名空间。
  2. 带"$"的topic: 经测试无法正常使用
    如 $delayed, $stream . topic 前面会自动追加 命名空间.

mqttx desktop 订阅没有用户属性?? stream-offset只能用mqttx-cli 来完成

这是命名空间挂载点的预期行为,不是你配置写错。
你开了“将命名空间作为挂载点”后,客户端侧发的主题会在 Broker 内部变成 {namespace}/<topic>。这样业务主题没问题,但像 $delayed/...$s/... 这种要求首层就是 $ 前缀的扩展主题,会被改写成 ns/$delayed/...ns/$s/...,功能就触发不了。
另外补一条:EMQX 6.1 的消息流订阅入口是:

$s/<timestamp>/<topic_filter>

不是 $stream/...
可选处理方案:

  • 给需要用 $delayed / $s 的客户端单独开一个 listener,不启用 namespace mountpoint;
  • 保留现有 listener 给普通业务主题隔离使用。
    你提到 MQTTX Desktop 里不好配 user property(比如你说的 stream-offset)也正常,Desktop 这块能力不如 CLI 全。涉及 MQTT 5 属性时,先用 MQTTX CLI 最稳。

emqx是否有feature 去处理命名空间和 $主题 的兼容性?
暂时不用命名空间了.

暂时没有。
如果是不想用命名空间。就直接把你上图中的设置全用默认值。