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

PHPz
Libérer: 2023-07-08 10:26:02
original
785 Les gens l'ont consulté

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal