为什么 paho-mqtt 忽略我的订阅

Why is paho-mqtt ignoring my subscription

我正在使用以下代码

    client.loop_start()
    client.subscribe("indentify/+")
    client.subscribe("indentify/#")
    client.subscribe("status/#")
    #client.subscribe("#")
    client.on_message=on_message 

当我发送 identify/xxx 到服务器时,它被忽略了。如果我取消注释最后一个订阅行,我会看到消息以及预期的所有其他内容。 执行基本相同操作的 Perl 脚本会按预期看到消息。

运行 paho_mqtt-1.5.1-py3-none-any.whl 和 Python 3.8.10 在 Ubuntu 20.04.3 服务器上。 任何想法,将不胜感激。 吉姆.

它没有忽略您的订阅,它完全按照您的要求进行操作。根据大量计算机问题,您要求它做的并不是您想要它做的。

让我们仔细看看:

              v
              |
Subscribe to indentify/+
Subscribe to indentify/#
Publish   to identify/xxx
              |
              ^

你能看到问题吗现在?我当然希望如此。

我怀疑您的“本质上相同”的 Perl 脚本的拼写可能比您的 Python 代码更好。 “Indentify”听起来像是 Python 程序员用来解决缩进问题的东西:-)


而且,如果我的回答在漫无边际中丢失,这通常是我的本性,这里是 Janet 和 John 位:

You did not spell "identify" correctly when subscribing. There's an extraneous "n" between the first two characters ("i" and "d"), giving you "i n dentify" (sans spaces - they're just there to make it more obvious).