Maison  >  Article  >  développement back-end  >  Meilleures pratiques pour le traitement des commandes en temps réel à l'aide de PHP et MQTT

Meilleures pratiques pour le traitement des commandes en temps réel à l'aide de PHP et MQTT

PHPz
PHPzoriginal
2023-07-08 08:49:391659parcourir

Meilleures pratiques pour le traitement des commandes en temps réel à l'aide de PHP et MQTT

Avec la popularité d'Internet, de plus en plus d'entreprises ont commencé à transférer leurs activités vers des plateformes en ligne, ce qui a rendu le besoin de traitement des commandes de plus en plus urgent. . Les méthodes traditionnelles de traitement des commandes transmettent souvent les informations de commande au front-end en temps réel en interrogeant la base de données ou en utilisant des technologies telles que WebSockets. Cette méthode est non seulement inefficace, mais également sujette à des problèmes de synchronisation des données. Afin de résoudre ces problèmes, nous pouvons utiliser PHP et MQTT pour implémenter le traitement des commandes en temps réel. Ce qui suit présente les meilleures pratiques sur la façon d'utiliser PHP et MQTT pour le traitement des commandes en temps réel.

MQTT (Message Queue Telemetry Transport) est un protocole léger de transmission de messages qui convient à divers scénarios d'Internet des objets et de communication de machine à machine. L'utilisation de MQTT permet d'obtenir une transmission fiable et une transmission de messages en temps réel, ce qui est très approprié pour les besoins de traitement des commandes en temps réel.

Tout d'abord, nous devons installer et configurer le serveur MQTT. Les serveurs MQTT courants incluent Eclipse Mosquitto et EMQX. En prenant Eclipse Mosquitto comme exemple ici, nous pouvons installer Mosquitto via la commande suivante :

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto

Une fois l'installation terminée, nous devons configurer le serveur Mosquitto et ouvrir le fichier de configuration mqtt dans la ligne de commande :

sudo nano /etc/mosquitto/mosquitto.conf

Ajoutez ce qui suit contenu du fichier :

listener 1883

protocol mqtt

Ensuite, enregistrez et quittez le fichier de configuration et redémarrez le serveur Mosquitto :

sudo systemctl restart mosquitto

Ensuite, nous devons nous connecter au serveur MQTT en utilisant PHP. Nous pouvons utiliser la bibliothèque phpmqtt/phpmqtt pour implémenter les fonctions du client MQTT. Cette bibliothèque peut être installée via Composer :

composer require phpmqtt/phpmqtt

Une fois l'installation terminée, nous pouvons commencer à écrire du code PHP. Tout d'abord, créez un fichier mqtt.php et introduisez le fichier de bibliothèque :

require_once 'vendor/autoload.php';
use PhpMqttClientMqttClient;

Ensuite, nous devons nous connecter au serveur MQTT :

$client = new MqttClient('localhost', 1883, 'client-1');

$client->connect();

Nous sommes maintenant connectés avec succès au serveur MQTT. Ensuite, nous devons nous abonner au sujet du traitement des commandes et définir la logique de traitement :

$client->subscribe('order/process', function (string $topic, string $message) {
    // 处理订单信息
    // ...

    // 发送处理结果
    $client->publish('order/status', 'processed');
});

Le code ci-dessus s'abonne au sujet nommé order/process et exécute la fonction de rappel lorsqu'un message est reçu. Dans la fonction de rappel, nous pouvons ajouter une logique de traitement des commandes personnalisée. Une fois le traitement terminé, nous pouvons utiliser la méthode de publication pour envoyer les résultats du traitement au sujet nommé commande/statut.

Le code mqtt.php complet est le suivant :

loop(true);

$client->loop(true) dans le code ci-dessus est un appel nécessaire, qui permettra au client de fonctionner afin de recevoir et de traiter les messages.

Nous pouvons désormais utiliser d'autres codes PHP pour simuler l'envoi de commandes. Par exemple, nous pouvons créer un fichier send_order.php :

<?php
require_once 'vendor/autoload.php';
use PhpMqttClientMqttClient;

$client = new MqttClient('localhost', 1883, 'client-2');

$client->connect();

$client->publish('order/process', 'new order');

$client->loop(true);

Le code ci-dessus se connecte au serveur MQTT et envoie un nouveau message de commande au sujet de commande/processus via la méthode de publication.

Grâce aux exemples de code ci-dessus, nous pouvons implémenter un traitement des commandes en temps réel basé sur PHP et MQTT. Lorsqu'une nouvelle commande est envoyée, la logique de traitement de la commande sera déclenchée et les résultats du traitement seront publiés dans le sujet spécifié. Le front-end peut obtenir l'état des commandes en temps réel en s'abonnant à la rubrique correspondante.

En résumé, utiliser PHP et MQTT pour réaliser un traitement des commandes en temps réel est un moyen efficace, fiable et facile à mettre en œuvre. Grâce au mécanisme de transmission de messages de MQTT, nous pouvons éviter d'interroger la base de données ou d'utiliser des technologies complexes pour réaliser une synchronisation des données en temps réel. J'espère que les meilleures pratiques fournies dans cet article pourront vous aider à les appliquer dans le traitement des commandes en temps réel.

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