Maison >développement back-end >tutoriel php >Comment développer une fonctionnalité de transmission de messages en temps réel à l'aide de PHP et MQTT

Comment développer une fonctionnalité de transmission de messages en temps réel à l'aide de PHP et MQTT

王林
王林original
2023-07-07 22:06:23962parcourir

Comment développer une fonction de transmission de messages en temps réel à l'aide de PHP et MQTT

Vue d'ensemble
Avec le développement rapide de la technologie Internet, la transmission de messages en temps réel est devenue l'une des fonctions essentielles dans de nombreuses applications. Grâce à l'envoi de messages en temps réel, nous pouvons réaliser des fonctions telles que la messagerie instantanée et la mise à jour des messages en temps réel. Cet article expliquera comment utiliser les protocoles PHP et MQTT (Message Queuing Telemetry Transport) pour développer une fonction de transmission de messages en temps réel.

Qu'est-ce que MQTT ?
MQTT est un protocole léger conçu pour fournir une prise en charge de communication pour les appareils IoT dans des environnements réseau à faible bande passante, à latence élevée et peu fiables. MQTT est basé sur le modèle de publication/abonnement, dans lequel l'éditeur (éditeur) publie des messages sur un sujet spécifique (sujet) et l'abonné (abonné) peut s'abonner à un sujet spécifique et recevoir les messages correspondants.

Préparation
Avant de commencer le développement, nous devons effectuer les préparations suivantes :

  1. Installer PHP : assurez-vous que PHP est installé et que la version requise est supérieure à 5.6
  2. Installer la bibliothèque mosquitto : mosquitto est une implémentation open source de MQTT ; . La bibliothèque mosquitto peut être installée via la commande suivante :

    sudo apt-get install mosquitto

    Cela installera la bibliothèque d'exécution et le client mosquitto

Étapes de développement

  1. Installer l'extension PHP MQTT
    Pour faciliter l'utilisation du protocole MQTT, nous pouvons utiliser l'extension PHP MQTT. Vous pouvez installer l'extension PHP MQTT en suivant les étapes suivantes :

    git clone https://github.com/mgdm/Mosquitto-PHP.git
    cd Mosquitto-PHP
    phpize
    ./configure
    make
    sudo make install

    Assurez-vous que le chemin d'accès à l'extension sans fil php.ini est ajouté au répertoire d'installation, puis redémarrez le serveur Apache/nginx.

  2. Develop Publisher

    <?php
    require("phpMQTT.php");
    
    $server = "mqtt服务器IP地址";   // MQTT服务器地址
    $port = 1883;                   // MQTT服务器端口号
    $username = "用户名";           // MQTT服务器用户名
    $password = "密码";             // MQTT服务器密码
    $client_id = "发布者ID";        // 发布者ID
    
    $mqtt = new phpMQTT($server, $port, $client_id);
    
    if ($mqtt->connect(true, NULL, $username, $password)) {
        $topic = "发布的主题";      // 发布的主题
        $message = "你好,这是一条实时消息。"; // 要发布的消息
        $mqtt->publish($topic, $message, 0);
        $mqtt->close();
    } else {
        echo "连接失败!";
    }

    Le code ci-dessus crée une instance de l'éditeur MQTT en se connectant au serveur MQTT spécifié et en publiant un message sur le sujet spécifié.

  3. Développer l'abonné

    <?php
    require("phpMQTT.php");
    
    $server = "mqtt服务器IP地址";   // MQTT服务器地址
    $port = 1883;                   // MQTT服务器端口号
    $username = "用户名";           // MQTT服务器用户名
    $password = "密码";             // MQTT服务器密码
    $client_id = "订阅者ID";        // 订阅者ID
    
    $mqtt = new phpMQTT($server, $port, $client_id);
    
    if ($mqtt->connect(true, NULL, $username, $password)) {
        $topic = "订阅的主题";      // 订阅的主题
        $mqtt->subscribe($topic, 0);
        while ($mqtt->proc()) {
            // 在这里编写自己的业务逻辑
        }
        $mqtt->close();
    } else {
        echo "连接失败!";
    }

    Le code ci-dessus crée une instance d'un abonné MQTT et obtient les messages correspondants en se connectant au serveur MQTT spécifié et en s'abonnant à un sujet spécifique.

  4. Testez le push de message en temps réel
    Exécutez le code côté éditeur (éditeur) sur le serveur et vous pourrez accéder à la page via le navigateur pour déclencher le push de message en temps réel. Vous pouvez ajouter votre propre logique métier dans le code d'abonné, comme la mise à jour du contenu de la page en temps réel.

Résumé
En utilisant ensemble les protocoles PHP et MQTT, nous pouvons facilement implémenter la fonction de transmission de messages en temps réel. Dans l'exemple ci-dessus, nous avons utilisé le modèle de publication/abonnement pour publier et recevoir des messages. Dans le processus de développement actuel, davantage d'expansion et de personnalisation peuvent être effectuées en fonction de vos propres besoins. J'espère que cet article vous sera utile !

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