mqtt broker 中的订阅主题应该如何组织?

How should subscription topic be be organized in mqtt broker?

我正在创建我自己的 mqtt 代理实现(我知道现有的很少,但我需要非常小的一个 - 用于嵌入式项目)。我想知道如何组织主题 - 我应该存储主题列表并连接特定主题的客户端 ID,还是每个客户端实例都应该有自己的订阅主题列表?什么是更好的方法?

我认为最好是存储客户端并在收到消息时获取具有匹配主题的客户端。

如果您使用# 通配符,这将有所帮助。

此外,如果您存储主题并将客户端附加到它们,那么对于您收到的每条消息,您将不得不转到多个主题,每个主题都有多个客户端。

但是如果您将客户和 link 主题存储给他们,您将不得不遍历客户列表,然后为每个客户选择 1 个主题。我认为这是少了一个 for 循环。