【问题标题】:how to prevent conflicts between publishing and subscribing in mosquitto?如何防止在 mosquitto 中发布和订阅之间的冲突?
【发布时间】:2019-11-22 02:33:24
【问题描述】:

情况是, 我使用 PHP 脚本语言的 Mosquitto-alpha 创建了一个 mqtt 客户端。 所以我有一个订阅功能,可以无限运行,每分钟从设备获取数据 例如

在服务器内部我运行了这个 php /path/to/my/file/MyPHPscript 订阅 &

在客户端设备中,我每分钟运行 2 个服务以将数据发布到 mqtt 代理

e.g
* * * * * php /path/to/my/file/MyPHPScript publish dataA
* * * * * sleep 2; php /path/to/my/file/MyPHPScript publish dataB

如果我在运行第二个服务之前没有让第二个服务休眠 2 秒,那么这两个数据就不会在同一分钟内一起发布。然后,如果我在设备中添加一个订阅来捕获来自服务器的消息,它将通过两个 cron 服务提供 intrmittent 数据推送

e.g  

    * * * * * php /path/to/my/file/MyPHPScript publish dataA
    * * * * * sleep 2; php /path/to/my/file/MyPHPScript publish dataB

我在单独的终端上运行了这个

php /path/to/my/file/MyPHPScript subscribe serverData &

上面这段代码干扰了其他两个cron服务的数据传输...有没有办法让这三个每分钟都工作而不冲突?

【问题讨论】:

  • 编辑问题以显示实际代码。很可能您使用的是相同的客户端 ID,因此脚本的第二个实例在完成之前将第一个实例从代理中踢出。
  • 是的,我已经在几个小时前修复了它。不过谢谢
  • 然后回答您自己的问题或将其删除。

标签: php mqtt iot mosquitto


【解决方案1】:

通过更改 pub 和 sub 命令使用的客户端 ID 修复

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多