Maison développement back-end tutoriel php 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 des fonctionnalités d'interaction client en temps réel à votre site Web

Jul 08, 2023 am 10:24 AM
php mqtt 实时互动

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.

  1. 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
Copier après la connexion

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.

  1. 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
Copier après la connexion

Une fois l'installation terminée, ajoutez la ligne suivante dans le fichier php.ini :

extension=php_mosquitto.so
Copier après la connexion

Ensuite, redémarrez le service PHP pour qu'il prenne effet.

  1. 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);
?>
Copier après la connexion

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服务器建立连接。

  1. 订阅主题

在MQTT中,订阅主题是实现发布/订阅模式的核心操作。我们可以使用MQTT客户端订阅感兴趣的主题。示例代码如下:

<?php
$topic = "testtopic"; // 订阅的主题

$client->subscribe($topic, 1);
?>
Copier après la connexion

通过subscribe方法,我们可以订阅指定的主题。第一个参数为要订阅的主题,第二个参数表示订阅的QoS(服务质量)级别,一般可设置为1。

  1. 接收消息

通过订阅主题后,我们可以接收来自MQTT服务器的消息。示例代码如下:

<?php
$client->onMessage(function ($message) {
    $topic = $message->topic;
    $payload = $message->payload;

    // 处理接收到的消息
    // ...

    // 返回响应给客户端
    // ...
});

$client->loopForever();
?>
Copier après la connexion

onMessage方法内,我们可以对接收到的消息进行处理,并针对不同的消息类型执行对应的操作。然后,我们可以返回响应给客户端。

  1. 发布消息

除了接收消息,我们还可以使用MQTT客户端来发布消息。示例代码如下:

<?php
$topic = "testtopic"; // 发布的主题
$payload = "Hello, world!"; // 发布的消息内容

$client->publish($topic, $payload, 1, false);
?>
Copier après la connexion

通过publish方法,我们可以发布指定的消息。第一个参数为发布的主题,第二个参数为发布的消息内容,第三个参数表示消息的QoS级别,第四个参数表示是否保留消息。

  1. 断开连接

在我们不再需要MQTT连接时,需要及时断开连接。示例代码如下:

<?php
$client->disconnect();
unset($client);
?>
Copier après la connexion

通过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!

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Apr 06, 2025 am 12:02 AM

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.

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

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,

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

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? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

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? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

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) ...

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

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.

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

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� ...

See all articles