Maison  >  Article  >  développement back-end  >  Guide de construction et de déploiement de solutions d'implémentation PHP pour le protocole MQTT

Guide de construction et de déploiement de solutions d'implémentation PHP pour le protocole MQTT

王林
王林original
2023-07-10 23:55:382581parcourir

MQTT (Message Queuing Telemetry Transport) est un protocole léger de transmission de messages largement utilisé pour la communication entre les appareils IoT. En tant que langage de script serveur largement utilisé, PHP propose également de nombreuses solutions pour implémenter le protocole MQTT. Cet article présentera comment créer et déployer une solution d'implémentation de protocole MQTT basée sur PHP et fournira des exemples de code pertinents.

1. Préparation

Avant de commencer à construire et à déployer, vous devez vous assurer que PHP et les extensions associées ont été installées sur le serveur. L'extension utilisée dans cet article est phpMQTT, qui est une bibliothèque client MQTT open source qui fournit une série de fonctions pratiques.

Tout d'abord, installez l'extension phpMQTT à l'aide de la commande suivante :

composer require bluerhinos/phpmqtt

2. Connectez-vous au courtier MQTT

Pour établir une connexion avec le courtier MQTT à l'aide de phpMQTT, vous devez fournir l'adresse, le port, le nom d'utilisateur et le mot de passe du courtier. . Voici un exemple :

<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "client_id");

if ($mqtt->connect(true, NULL, "username", "password")) {
   // 连接成功
} else {
   // 连接失败
}

$mqtt->close();
?>

Dans le constructeur phpMQTT, l'adresse du courtier MQTT (mqtt.example.com) et le numéro de port (1883) sont transmis. Dans le même temps, un identifiant client est également transmis, que vous pouvez modifier vous-même. phpMQTT构造函数中,传入了MQTT代理的地址(mqtt.example.com)和端口号(1883)。同时,还传入了一个客户端ID,您可以自行修改。

接下来,使用connect函数连接到MQTT代理。该函数的第一个参数指定了是否启用MQTT代理的持久化会话(true表示启用),第二个参数是代理的SSL证书路径,第三个和第四个参数是代理的用户名和密码。如果连接成功,将执行连接成功的代码块。否则,将执行连接失败的代码块。

最后,在需要断开连接的地方,使用close函数关闭MQTT连接。

3. 发布和订阅消息

发布和订阅消息是MQTT的核心功能之一。在phpMQTT中,可以使用publish函数发布消息,使用subscribe函数订阅消息。

以下是一个发布消息的示例:

<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "client_id");

if ($mqtt->connect(true, NULL, "username", "password")) {
   $mqtt->publish("topic", "message");
} else {
   // 连接失败
}

$mqtt->close();
?>

在上述示例中,调用了publish函数,将消息发布到名为"topic"的主题上。

以下是一个订阅消息的示例:

<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "client_id");

if ($mqtt->connect(true, NULL, "username", "password")) {
   $topics = array("topic1", "topic2");
   $mqtt->subscribe($topics);
   while ($mqtt->proc()) {
      // 处理订阅的消息
   }
} else {
   // 连接失败
}

$mqtt->close();
?>

在上述示例中,调用subscribe函数,传入一个主题数组,即可订阅多个主题的消息。然后使用一个循环,调用proc函数,循环监听订阅的消息。在proc

Ensuite, utilisez la fonction connect pour vous connecter au courtier MQTT. Le premier paramètre de cette fonction spécifie s'il faut activer la session persistante du courtier MQTT (vrai signifie activé), le deuxième paramètre est le chemin du certificat SSL du courtier, et les troisième et quatrième paramètres sont le nom d'utilisateur et le mot de passe du courtier. Si la connexion réussit, le bloc de code de réussite de la connexion sera exécuté. Sinon, le bloc de code dont la connexion n’a pas réussi sera exécuté.

Enfin, utilisez la fonction close pour fermer la connexion MQTT là où la connexion doit être déconnectée.

3. Publier et s'abonner aux messages

La publication et l'abonnement aux messages sont l'une des fonctions principales de MQTT. Dans phpMQTT, vous pouvez utiliser la fonction publish pour publier des messages et la fonction subscribe pour vous abonner aux messages. 🎜🎜Ce qui suit est un exemple de publication d'un message : 🎜rrreee🎜Dans l'exemple ci-dessus, la fonction publier est appelée pour publier le message dans le sujet nommé "topic". 🎜🎜Ce qui suit est un exemple d'abonnement à un message : 🎜rrreee🎜Dans l'exemple ci-dessus, appelez la fonction subscribe et transmettez un tableau de sujets pour vous abonner aux messages de plusieurs sujets. Utilisez ensuite une boucle pour appeler la fonction proc afin d'écouter les messages abonnés en boucle. Dans la fonction proc, le message reçu peut être traité. 🎜🎜4. Résumé🎜🎜Cet article présente une solution d'implémentation du protocole MQTT basée sur PHP, utilise phpMQTT comme bibliothèque client MQTT et fournit quelques exemples de code. En lisant cet article et en suivant l'exemple de code, vous pouvez rapidement créer et déployer une implémentation PHP du protocole MQTT. Bien entendu, il existe d'autres implémentations PHP du protocole MQTT parmi lesquelles choisir, et vous pouvez choisir l'outil le plus approprié en fonction de vos propres besoins. 🎜🎜J'espère que cet article pourra vous être utile, et je vous souhaite du succès dans la mise en place et le déploiement ! 🎜

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