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

PHPz
PHPzoriginal
2023-07-09 12:31:391016parcourir

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.

  1. 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.

  2. 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方法来断开连接。

  3. 创建发布者和订阅者:
    现在,我们可以创建一个发布者和一个订阅者来进行实际的通信。下面是一个简单的示例。

    <?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

  1. Création d'éditeurs et d'abonnés :

    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.php

    Dans 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.

Ensuite, nous créons un abonné nommé « abonné » et nous nous connectons au courtier MQTT. Ensuite, nous utilisons la méthode 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.


🎜Exécutez l'exemple : 🎜Nous pouvons maintenant exécuter cet exemple pour tester si notre éditeur et notre abonné fonctionnent correctement. La commande suivante peut être exécutée dans la ligne de commande : 🎜
php subscriber.php
rrreee🎜 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn