


Comment utiliser PHP et MQTT pour ajouter des fonctionnalités d'interaction client en temps réel à votre site Web
Comment utiliser PHP et MQTT pour ajouter la fonction d'interaction en temps réel avec les clients au site Web
Avec le développement rapide d'Internet, l'interactivité du site Web est également devenue un élément important de l'expérience utilisateur. Afin d'obtenir une interaction en temps réel avec les clients, le modèle traditionnel de réponse aux demandes de pages Web ne peut plus répondre aux besoins. MQTT (Message Queuing Telemetry Transport), en tant que protocole léger de publication/abonnement, fournit une solution de communication en temps réel. Cet article explique comment utiliser PHP et MQTT pour ajouter une interaction en temps réel avec les clients sur le site Web.
- Installez le serveur MQTT
Tout d'abord, nous devons construire le serveur MQTT. Les serveurs MQTT couramment utilisés incluent Mosquitto, EMQX, etc. En prenant Mosquitto comme exemple, vous pouvez l'installer via la commande suivante dans un système Linux :
sudo apt-get update sudo apt-get install mosquitto sudo apt-get install mosquitto-clients
Une fois l'installation terminée, vous pouvez démarrer le serveur MQTT et créer un sujet nommé "testtopic" pour nos exemples de code suivants.
- Démarrer la prise en charge de la bibliothèque d'extensions MQTT de PHP
PHP n'a pas de prise en charge MQTT intégrée Avant d'utiliser PHP pour les opérations MQTT, vous devez installer la bibliothèque d'extensions PHP MQTT. Nous pouvons installer la bibliothèque d'extensions en suivant les étapes suivantes :
git clone https://github.com/bluerhinos/phpMQTT.git cd phpMQTT phpize ./configure make sudo make install
Une fois l'installation terminée, ajoutez la ligne suivante dans le fichier php.ini :
extension=php_mosquitto.so
Ensuite, redémarrez le service PHP pour qu'il prenne effet.
- Connexion au serveur MQTT
Dans le code PHP, nous devons d'abord nous connecter au serveur MQTT. L'exemple de code est le suivant :
<?php $host = "localhost"; // MQTT服务器地址 $port = 1883; // MQTT服务器端口 $clientId = "client1"; // 客户端ID $client = new MosquittoClient($clientId); $client->connect($host, $port, 60); ?>
Avant de nous connecter au serveur, nous devons présenter la bibliothèque MQTT et définir l'adresse, le port et l'ID client du serveur MQTT. Grâce à la méthode connect
, nous pouvons établir une connexion avec le serveur MQTT. connect
方法,我们可以与MQTT服务器建立连接。
- 订阅主题
在MQTT中,订阅主题是实现发布/订阅模式的核心操作。我们可以使用MQTT客户端订阅感兴趣的主题。示例代码如下:
<?php $topic = "testtopic"; // 订阅的主题 $client->subscribe($topic, 1); ?>
通过subscribe
方法,我们可以订阅指定的主题。第一个参数为要订阅的主题,第二个参数表示订阅的QoS(服务质量)级别,一般可设置为1。
- 接收消息
通过订阅主题后,我们可以接收来自MQTT服务器的消息。示例代码如下:
<?php $client->onMessage(function ($message) { $topic = $message->topic; $payload = $message->payload; // 处理接收到的消息 // ... // 返回响应给客户端 // ... }); $client->loopForever(); ?>
在onMessage
方法内,我们可以对接收到的消息进行处理,并针对不同的消息类型执行对应的操作。然后,我们可以返回响应给客户端。
- 发布消息
除了接收消息,我们还可以使用MQTT客户端来发布消息。示例代码如下:
<?php $topic = "testtopic"; // 发布的主题 $payload = "Hello, world!"; // 发布的消息内容 $client->publish($topic, $payload, 1, false); ?>
通过publish
方法,我们可以发布指定的消息。第一个参数为发布的主题,第二个参数为发布的消息内容,第三个参数表示消息的QoS级别,第四个参数表示是否保留消息。
- 断开连接
在我们不再需要MQTT连接时,需要及时断开连接。示例代码如下:
<?php $client->disconnect(); unset($client); ?>
通过disconnect
- S'abonner aux sujets🎜Dans MQTT, l'abonnement aux sujets est l'opération principale pour implémenter le modèle de publication/abonnement. Nous pouvons utiliser le client MQTT pour nous abonner à des sujets d'intérêt. L'exemple de code est le suivant : 🎜rrreee🎜Grâce à la méthode
subscribe
, nous pouvons nous abonner au sujet spécifié. Le premier paramètre est le thème auquel souscrire, et le deuxième paramètre indique le niveau de QoS (Qualité de Service) de l'abonnement, qui peut généralement être fixé à 1. 🎜- 🎜Recevoir des messages🎜🎜🎜En vous abonnant au sujet, nous pouvons recevoir des messages du serveur MQTT. L'exemple de code est le suivant : 🎜rrreee🎜Dans la méthode
onMessage
, nous pouvons traiter le message reçu et effectuer les opérations correspondantes pour différents types de messages. Nous pouvons alors renvoyer la réponse au client. 🎜- 🎜Publier des messages🎜🎜🎜En plus de recevoir des messages, nous pouvons également utiliser le client MQTT pour publier des messages. L'exemple de code est le suivant : 🎜rrreee🎜Grâce à la méthode
publish
, nous pouvons publier le message spécifié. Le premier paramètre est le sujet publié, le deuxième paramètre est le contenu du message publié, le troisième paramètre indique le niveau de QoS du message et le quatrième paramètre indique s'il faut conserver le message. 🎜- 🎜Déconnecter🎜🎜🎜Lorsque nous n'avons plus besoin de la connexion MQTT, nous devons la déconnecter à temps. L'exemple de code est le suivant : 🎜rrreee🎜Grâce à la méthode
disconnect
, nous pouvons nous déconnecter du serveur MQTT et libérer des ressources. 🎜🎜Avec les 7 étapes ci-dessus, nous pouvons utiliser PHP et MQTT pour ajouter une interaction en temps réel avec les clients sur le site Web. En nous abonnant à des sujets et en publiant des messages, nous pouvons facilement réaliser une communication en temps réel, ajoutant de l'interactivité et du temps réel au site Web. J'espère que cet article vous aidera ! 🎜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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Alipay Php ...

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...
