Comparaison et tests de performances des implémentations client PHP du protocole MQTT
Introduction :
Avec le développement rapide de l'Internet des objets, le protocole MQTT (Message Queuing Telemetry Transport), en tant que protocole léger de transmission de messages, a gagné en popularité sur Internet des applications des objets. Large gamme d'applications. Lors du développement d'un client MQTT, il est très important de choisir une solution d'implémentation appropriée et de tester ses performances.
Cet article comparera les solutions courantes d'implémentation de client PHP MQTT et testera leurs performances pour référence par les développeurs.
1. Connaissances de base
Il existe de nombreuses solutions d'implémentation de client PHP MQTT parmi lesquelles vous pouvez choisir, telles que Mosquitto, phpMQTT, Eclipse-paho-php, etc. Ces options seront brièvement présentées ci-dessous.
2. Test de performance
Afin d'évaluer les performances de ces différentes solutions de mise en œuvre, nous utilisons le même scénario de test et enregistrons les indicateurs de performance de chaque solution.
Lors du test, nous avons adopté l'environnement et les méthodes suivants :
Voici un résumé des résultats du test :
Mosquitto :
<?php require('mosquitto.php'); $mqtt = new MosquittoClient(); $mqtt->onConnect(function($rc) use ($mqtt) { if ($rc == 0) { echo "Connection succeeded. "; $mqtt->disconnect(); } }); $mqtt->connect('localhost', 1883, 60); $mqtt->loopForever(); ?>
phpMQTT :
<?php require('phpMQTT.php'); $mqtt = new phpMQTT('localhost', 1883, 'phpMQTT'); if ($mqtt->connect()) { echo "Connection succeeded. "; $mqtt->close(); } ?>
eclipse-paho-mqtt-php :
<?php require('eclipse-paho-mqtt.php'); use EclipseMQTTClientFactory; use EclipseMQTTConfig; $client = ClientFactory::getClient(Config::create('localhost')); if ($client->connect()) { echo "Connection succeeded. "; $client->disconnect(); } ?>
Mosquitto :
<?php require('mosquitto.php'); $mqtt = new MosquittoClient(); $mqtt->onPublish(function($message) use ($mqtt) { echo "Message published. "; $mqtt->disconnect(); }); $mqtt->connect('localhost', 1883, 60); $mqtt->publish('topic', 'Hello, MQTT!', 0); $mqtt->loopForever(); ?>
phpMQTT :
<?php require('phpMQTT.php'); $mqtt = new phpMQTT('localhost', 1883, 'phpMQTT'); if ($mqtt->connect()) { $mqtt->publish('topic', 'Hello, MQTT!', 0); echo "Message published. "; $mqtt->close(); } ?>
eclipse-paho-mqtt-php :
<?php require('eclipse-paho-mqtt.php'); use EclipseMQTTClientFactory; use EclipseMQTTConfig; $client = ClientFactory::getClient(Config::create('localhost')); if ($client->connect()) { $client->publish('topic', 'Hello, MQTT!', 0); echo "Message published. "; $client->disconnect(); } ?>
Mosquitto :
<?php require('mosquitto.php'); $mqtt = new MosquittoClient(); $mqtt->onConnect(function($rc) use ($mqtt) { if ($rc == 0) { $mqtt->subscribe('topic', 0); } }); $mqtt->onMessage(function($message) use ($mqtt) { echo "Received message: " . $message->payload . " "; $mqtt->disconnect(); }); $mqtt->connect('localhost', 1883, 60); $mqtt->loopForever(); ?>
phpMQTT
<?php require('phpMQTT.php'); $mqtt = new phpMQTT('localhost', 1883, 'phpMQTT'); if ($mqtt->connect()) { $topics['topic'] = array('qos' => 0, 'function' => 'messageReceived'); $mqtt->subscribe($topics); while($mqtt->proc()){} $mqtt->close(); } function messageReceived($topic, $message) { echo "Received message: " . $message . " "; } ?>
Res : ults affichés Sous différentes concurrences, Mosquitto montre de bonnes performances, suivi de phpMQTT, et Eclipse-paho-mqtt-php est relativement médiocre en termes de performances de connexion et d'envoi de messages.
Conclusion :
Grâce à la comparaison et aux tests de performances des implémentations courantes du client PHP MQTT, nous avons constaté que Mosquitto affiche d'excellentes performances, notamment en termes de connexion et de publication de messages. En tant que solution légère, phpMQTT est relativement simple et facile à utiliser et convient à certains scénarios légers. Eclipse-paho-mqtt-php fournit des fonctionnalités avancées, mais manque quelque peu de performances. Les développeurs peuvent choisir la solution de mise en œuvre appropriée en fonction de leurs propres besoins.
Limité par l'espace, cet article ne fournit qu'une brève introduction et un test de performances de la solution d'implémentation du client PHP MQTT. Dans les projets réels, des tests de performances et fonctionnels plus détaillés doivent être effectués en fonction de besoins spécifiques et de scénarios spécifiques pour sélectionner la solution la plus appropriée.
Références :
Site officiel de Mosquitto : https://mosquitto.org/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!