首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次加载索引时,我如何接收发送到MQTT主题的所有消息到网页?

每次加载索引时,我如何接收发送到MQTT主题的所有消息到网页?
EN

Stack Overflow用户
提问于 2021-01-05 21:21:30
回答 1查看 480关注 0票数 0

因此,我对MQTT很陌生,我必须创建一个“消息传递”项目,在没有长时间加载的情况下加载索引页面中的所有消息(发送到特定主题),我正在使用Yii2框架高级项目,并且我已经完成了发布代码,在模型中我创建了AfterSave方法,每次它将一些东西保存到数据库中,它将一条消息发布到我的Raspberry中。

示例

我拥有一家酒店,每次我登录到我的后端时,我都希望在我的索引中包含MQTT蚊帐中发送到这个主题的所有预订请求(比如通知)。

就像我说的,我正在使用Yii2框架高级项目,我为MQTT使用的扩展是Bluerhinos\phpMQTT

我已经拥有的代码:

类模型ReservationRequest.php (因为我已经在shell中进行了测试),所以它正在工作并发送到主题中。

代码语言:javascript
复制
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");
        }
}

欢迎任何建议,谢谢您的关注。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-06 07:41:26

排序答案是你不知道。

MQTT不是消息队列系统。它将只对尚未传递给具有持久订阅的客户端的消息进行队列处理,该订阅在发送邮件时当前处于脱机状态。

你可能有两个选择

  1. 发布一条包含所有房间当前状态的消息,例如{ "room1": "occupied", "room2": "free",...},并设置保留的标志,以便在客户端订阅该主题时,始终将该消息的最新版本传递给客户端。

  1. 对后端进行REST调用,该后端可以在数据库上运行查询以检索所有房间的当前状态。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65586745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档