每次加载索引时,如何将发送到 MQTT 主题的所有消息接收到网页?
How can I receive all the messages send to a topic of MQTT to a webpage everytime I load the index?
所以我是 MQTT 的新手,我必须制作一个“消息传递”项目,在我的索引页面中加载所有消息(发送到某个主题)而加载时间不会很长,我正在使用 Yii2 Framework Advanced Project 并且我已经完成了发布代码,在模型中我创建了 AfterSave 方法,每次它向数据库保存一些东西时它都会向我的 Raspberry PI[=11= 中的 MQTT Broker 发布一条消息]
例子
我拥有一家酒店,每次登录我的后端时,我都希望在我的索引中包含在 MQTT mosquitto“请求预订”(如通知)中发送到该主题的所有预订请求。
就像我说的,我正在使用 Yii2 Framework Advanced Project,我用于 MQTT 的扩展是 Bluerhinos\phpMQTT
我已有的代码:
Class 模型 ReservationRequest.php(这正在工作并发送到主题,因为我已经在 shell 中测试过)
public function afterSave($insert, $changedAttributes) {
parent::afterSave($insert, $changedAttributes); // TODO: Change the autogenerated stub
if ($insert){
$this->publish("request-reservation", "New notification of a reservation request with the ID: '. $this->id . PHP_EOL");
}
}
欢迎指教,感谢关注
排序答案是你不知道。
MQTT 不是消息队列系统。它只会将尚未传送到具有持久订阅的客户端的消息排队,该持久订阅在发送消息时当前处于脱机状态。
您可能有 2 个选择
发布一条包含所有房间当前状态的消息,例如{ "room1": "occupied", "room2": "free",...}
并设置保留标志,以便在客户订阅该主题时始终将此消息的最新版本传递给客户。
对后端进行 REST 调用,可以运行查询数据库以检索所有房间的当前状态。
所以我是 MQTT 的新手,我必须制作一个“消息传递”项目,在我的索引页面中加载所有消息(发送到某个主题)而加载时间不会很长,我正在使用 Yii2 Framework Advanced Project 并且我已经完成了发布代码,在模型中我创建了 AfterSave 方法,每次它向数据库保存一些东西时它都会向我的 Raspberry PI[=11= 中的 MQTT Broker 发布一条消息]
例子
我拥有一家酒店,每次登录我的后端时,我都希望在我的索引中包含在 MQTT mosquitto“请求预订”(如通知)中发送到该主题的所有预订请求。
就像我说的,我正在使用 Yii2 Framework Advanced Project,我用于 MQTT 的扩展是 Bluerhinos\phpMQTT
我已有的代码:
Class 模型 ReservationRequest.php(这正在工作并发送到主题,因为我已经在 shell 中测试过)
public function afterSave($insert, $changedAttributes) {
parent::afterSave($insert, $changedAttributes); // TODO: Change the autogenerated stub
if ($insert){
$this->publish("request-reservation", "New notification of a reservation request with the ID: '. $this->id . PHP_EOL");
}
}
欢迎指教,感谢关注
排序答案是你不知道。
MQTT 不是消息队列系统。它只会将尚未传送到具有持久订阅的客户端的消息排队,该持久订阅在发送消息时当前处于脱机状态。
您可能有 2 个选择
发布一条包含所有房间当前状态的消息,例如
{ "room1": "occupied", "room2": "free",...}
并设置保留标志,以便在客户订阅该主题时始终将此消息的最新版本传递给客户。对后端进行 REST 调用,可以运行查询数据库以检索所有房间的当前状态。