Php 如何防止在Mosquito中发布和订阅之间的冲突?

Php 如何防止在Mosquito中发布和订阅之间的冲突?,php,mqtt,iot,mosquitto,Php,Mqtt,Iot,Mosquitto,情况是,, 我用PHP脚本语言使用Mosquitto alpha创建了一个mqtt客户机。 所以我有一个subscribe函数,它可以无限地运行,每分钟从一个设备获取数据 e、 g 在服务器内部,我运行了这个 php/path/to/my/file/MyPHPscript订阅& 在客户机设备中,我每分钟运行2个服务,将数据发布到mqtt代理 e.g * * * * * php /path/to/my/file/MyPHPScript publish dataA * * * * * sleep 2

情况是,, 我用PHP脚本语言使用Mosquitto alpha创建了一个mqtt客户机。 所以我有一个subscribe函数,它可以无限地运行,每分钟从一个设备获取数据 e、 g

在服务器内部,我运行了这个 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服务的数据传输……有没有办法让这3个服务每分钟都工作一次而不发生冲突?

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

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