Maison >développement back-end >tutoriel php >PHP et MQTT : créer des applications basées sur le modèle de publication-abonnement
PHP et MQTT : créer des applications basées sur le modèle de publication-abonnement
Introduction :
Avec le développement rapide de l'Internet des objets, de plus en plus d'appareils doivent communiquer entre eux en temps réel. MQTT (Message Queuing Telemetry Transport) est un protocole de transmission de messages léger qui peut permettre une communication efficace dans des environnements réseau à faible bande passante et instables. En combinaison avec le langage PHP, nous pouvons utiliser MQTT pour créer des applications basées sur le modèle de publication-abonnement. Cet article explique comment créer un simple éditeur et abonné à l'aide de PHP et MQTT.
Préparation de l'environnement :
Avant de commencer, nous devons nous assurer que les extensions PHP et MQTT sont installées. Il peut être installé via la commande suivante :
composer require eclampsia89/php-mqtt
Cette extension fournit des fonctionnalités pour communiquer avec un courtier MQTT.
Création du client MQTT :
Nous devons d'abord créer un client MQTT pour la connexion et la communication. Vous trouverez ci-dessous une simple classe MQTT.
<?php require 'vendor/autoload.php'; use eclampsia89MQTTProtocol; use eclampsia89MQTTMessageType; class MQTTClient { private $client; public function __construct($clientId, $broker, $port) { $this->client = new Protocol($broker, $port, $clientId); } public function connect() { $this->client->connect(); } public function subscribe($topic) { $this->client->subscribe($topic); } public function publish($topic, $message) { $this->client->publish($topic, $message); } public function disconnect() { $this->client->disconnect(); } public function loop() { $this->client->loop(); } }
Dans cette classe, nous utilisons eclampsia89MQTTProtocol
pour nous connecter au courtier et utilisons la méthode connect
pour nous connecter. On peut utiliser la méthode subscribe
pour s'abonner à un sujet et la méthode publish
pour publier des messages. Enfin, nous utilisons la méthode disconnect
pour nous déconnecter. eclampsia89MQTTProtocol
来连接代理,并使用connect
方法进行连接。我们可以使用subscribe
方法来订阅主题,使用publish
方法来发布消息。最后,我们使用disconnect
方法来断开连接。
创建发布者和订阅者:
现在,我们可以创建一个发布者和一个订阅者来进行实际的通信。下面是一个简单的示例。
<?php require 'MQTTClient.php'; // 创建发布者 $publisher = new MQTTClient('publisher', 'mqtt.broker.com', 1883); $publisher->connect(); // 发布消息 $publisher->publish('topic', 'Hello, subscribers!'); // 断开连接 $publisher->disconnect(); // 创建订阅者 $subscriber = new MQTTClient('subscriber', 'mqtt.broker.com', 1883); $subscriber->connect(); // 订阅主题 $subscriber->subscribe('topic'); // 循环等待消息 while (true) { $subscriber->loop(); } // 断开连接 $subscriber->disconnect();
在这个示例中,我们创建了一个名为“publisher”的发布者,并连接到MQTT代理。然后,我们使用publish
方法发布了一个消息,主题为“topic”。最后,我们断开连接。
接下来,我们创建了一个名为“subscriber”的订阅者,并连接到MQTT代理。然后,我们使用subscribe
方法订阅了主题为“topic”的消息。通过调用loop
Maintenant, nous pouvons créer un éditeur et un abonné pour effectuer la communication proprement dite. Vous trouverez ci-dessous un exemple simple.
php publisher.phpDans cet exemple, nous créons un éditeur nommé « éditeur » et nous nous connectons au courtier MQTT. Ensuite, nous utilisons la méthode
publish
pour publier un message avec le sujet "topic". Finalement, on se déconnecte.
subscribe
pour vous abonner au message avec le sujet "topic". En appelant la méthode loop
, nous pouvons continuer à attendre et recevoir des messages de l'agent. php subscriber.phprrreee🎜 En regardant la sortie de l'abonné, on peut voir qu'il a reçu le message de l'éditeur. 🎜🎜🎜🎜Conclusion : 🎜En utilisant PHP et MQTT, nous pouvons facilement créer des applications basées sur un modèle de publication-abonnement. Dans cet article, nous vous avons montré comment utiliser PHP et l'extension MQTT pour créer un simple éditeur et abonné pour une communication en temps réel. J'espère que cet article vous aidera à comprendre et à appliquer PHP et MQTT. 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!