【问题标题】:Why is paho-mqtt ignoring my subscription为什么 paho-mqtt 忽略我的订阅
【发布时间】:2021-09-08 09:34:45
【问题描述】:

我正在使用以下代码

    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 服务器上。 任何想法,将不胜感激。 吉姆。

【问题讨论】:

  • 编辑问题以显示更多代码,但在订阅之前设置on_message 回调是一种很好的做法。在连接完成之前也不调用 subscribe(例如在 on_connect 回调中)
  • 因拼写错误关闭。

标签: python-3.x mqtt paho


【解决方案1】:

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

让我们仔细看看:

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

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

我怀疑您的“基本相同”的 Perl 脚本的拼写可能比您的 Python 代码更好。 “Indentify”听起来像是 Python 编码人员为解决缩进问题所做的事情 :-)


而且,如果我的答案在我本性的漫无边际中迷失了,这里是珍妮特和约翰的一点:

您在订阅时没有正确拼写“identify”。前两个字符(“i”和“d”)之间有一个无关的“n”,给你“i n dentify”(没有空格 - 它们只是在那里使它更明显)。

【讨论】:

  • 嗯,谢谢,我真的应该明白这一点。没有借口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多