Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie PHP und MQTT, um Ihrer Website Funktionen zur Kundeninteraktion in Echtzeit hinzuzufügen

So verwenden Sie PHP und MQTT, um Ihrer Website Funktionen zur Kundeninteraktion in Echtzeit hinzuzufügen

PHPz
PHPzOriginal
2023-07-08 10:24:09758Durchsuche

So nutzen Sie PHP und MQTT, um der Website Echtzeitinteraktion mit Kunden hinzuzufügen

Mit der rasanten Entwicklung des Internets ist auch die Interaktivität der Website zu einem wichtigen Bestandteil des Benutzererlebnisses geworden. Um eine Echtzeitinteraktion mit Kunden zu erreichen, kann das herkömmliche Antwortmodell für Webseitenanfragen nicht mehr den Anforderungen gerecht werden. MQTT (Message Queuing Telemetry Transport) bietet als leichtes Publish/Subscribe-Protokoll eine Echtzeit-Kommunikationslösung. In diesem Artikel wird erläutert, wie Sie PHP und MQTT verwenden, um der Website Echtzeitinteraktion mit Kunden hinzuzufügen.

  1. Installieren Sie den MQTT-Server

Zuerst müssen wir den MQTT-Server erstellen. Zu den häufig verwendeten MQTT-Servern gehören Mosquitto, EMQX usw. Am Beispiel von Mosquitto können Sie es über den folgenden Befehl in einem Linux-System installieren:

sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients

Nach Abschluss der Installation können Sie den MQTT-Server starten und ein Thema mit dem Namen „testtopic“ für unsere nachfolgenden Codebeispiele erstellen.

  1. Unterstützung der MQTT-Erweiterungsbibliothek von PHP starten

PHP verfügt nicht über integrierte MQTT-Unterstützung. Bevor Sie PHP für MQTT-Vorgänge verwenden können, müssen Sie die MQTT-PHP-Erweiterungsbibliothek installieren. Wir können die Erweiterungsbibliothek durch die folgenden Schritte installieren:

git clone https://github.com/bluerhinos/phpMQTT.git
cd phpMQTT
phpize
./configure
make
sudo make install

Nachdem die Installation abgeschlossen ist, fügen Sie die folgende Zeile in die php.ini-Datei ein:

extension=php_mosquitto.so

Dann starten Sie den PHP-Dienst neu, damit er wirksam wird.

  1. Herstellen einer Verbindung zum MQTT-Server

Im PHP-Code müssen wir zunächst eine Verbindung zum MQTT-Server herstellen. Der Beispielcode lautet wie folgt:

<?php
$host = "localhost"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$clientId = "client1"; // 客户端ID

$client = new MosquittoClient($clientId);
$client->connect($host, $port, 60);
?>

Bevor wir eine Verbindung zum Server herstellen, müssen wir die MQTT-Bibliothek vorstellen und die Adresse, den Port und die Client-ID des MQTT-Servers festlegen. Über die Methode connect können wir eine Verbindung mit dem MQTT-Server herstellen. connect方法,我们可以与MQTT服务器建立连接。

  1. 订阅主题

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

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

$client->subscribe($topic, 1);
?>

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

  1. 接收消息

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

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

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

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

$client->loopForever();
?>

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

  1. 发布消息

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

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

$client->publish($topic, $payload, 1, false);
?>

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

  1. 断开连接

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

<?php
$client->disconnect();
unset($client);
?>

通过disconnect

    Themen abonnieren

    🎜In MQTT ist das Abonnieren von Themen der Kernvorgang zur Implementierung des Publish/Subscribe-Modells. Wir können den MQTT-Client verwenden, um interessante Themen zu abonnieren. Der Beispielcode lautet wie folgt: 🎜rrreee🎜Über die Methode subscribe können wir das angegebene Thema abonnieren. Der erste Parameter ist das zu abonnierende Thema und der zweite Parameter gibt die QoS-Stufe (Quality of Service) des Abonnements an, die im Allgemeinen auf 1 gesetzt werden kann. 🎜
      🎜Nachrichten empfangen🎜🎜🎜Durch das Abonnieren des Themas können wir Nachrichten vom MQTT-Server empfangen. Der Beispielcode lautet wie folgt: 🎜rrreee🎜In der Methode onMessage können wir die empfangene Nachricht verarbeiten und entsprechende Vorgänge für verschiedene Nachrichtentypen ausführen. Anschließend können wir die Antwort an den Kunden zurücksenden. 🎜
        🎜Nachrichten veröffentlichen🎜🎜🎜Zusätzlich zum Empfangen von Nachrichten können wir den MQTT-Client auch zum Veröffentlichen von Nachrichten verwenden. Der Beispielcode lautet wie folgt: 🎜rrreee🎜Über die Methode publish können wir die angegebene Nachricht veröffentlichen. Der erste Parameter ist das veröffentlichte Thema, der zweite Parameter ist der veröffentlichte Nachrichteninhalt, der dritte Parameter gibt den QoS-Level der Nachricht an und der vierte Parameter gibt an, ob die Nachricht aufbewahrt werden soll. 🎜
          🎜Trennen🎜🎜🎜Wenn wir die MQTT-Verbindung nicht mehr benötigen, müssen wir sie rechtzeitig trennen. Der Beispielcode lautet wie folgt: 🎜rrreee🎜Über die Methode disconnect können wir die Verbindung zum MQTT-Server trennen und Ressourcen freigeben. 🎜🎜Mit den oben genannten 7 Schritten können wir PHP und MQTT verwenden, um der Website Echtzeitinteraktion mit Kunden hinzuzufügen. Durch das Abonnieren von Themen und das Veröffentlichen von Nachrichten können wir problemlos eine Echtzeitkommunikation erreichen und der Website Interaktivität und Echtzeit verleihen. Ich hoffe, dieser Artikel ist hilfreich für Sie! 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP und MQTT, um Ihrer Website Funktionen zur Kundeninteraktion in Echtzeit hinzuzufügen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn