如何防止蚊子在发布和订阅之间发生冲突?

时间:2019-11-22 02:33:24

标签: php mqtt iot mosquitto

情况是, 我使用Mosquitto-alpha用PHP脚本语言创建了一个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服务进行不间断的数据推送

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服务的数据传输...是否有办法让这三个cron每分钟正常工作?

1 个答案:

答案 0 :(得分:1)

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