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 :
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
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.
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é.
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.
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!