如何防止mosquitto中发布和订阅之间的冲突?
how to prevent conflicts between publishing and subscribing in mosquitto?
情况是,
我使用 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 服务提供间歇性数据推送
e.g
* * * * * php /path/to/my/file/MyPHPScript publish dataA
* * * * * sleep 2; php /path/to/my/file/MyPHPScript publish dataB
在单独的终端 I 运行 这个
php /path/to/my/file/MyPHPScript subscribe serverData &
上面的代码干扰了其他两个 cron 服务的数据 t运行smission...有没有办法让这 3 个每分钟都工作而不会发生冲突?
已通过更改 pub 和 sub 命令使用的客户端 ID 修复
情况是, 我使用 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 服务提供间歇性数据推送
e.g
* * * * * php /path/to/my/file/MyPHPScript publish dataA
* * * * * sleep 2; php /path/to/my/file/MyPHPScript publish dataB
在单独的终端 I 运行 这个
php /path/to/my/file/MyPHPScript subscribe serverData &
上面的代码干扰了其他两个 cron 服务的数据 t运行smission...有没有办法让这 3 个每分钟都工作而不会发生冲突?
已通过更改 pub 和 sub 命令使用的客户端 ID 修复