Heim > Artikel > Backend-Entwicklung > So verwenden Sie PHP und MQTT, um Ihrer Website Funktionen zur Kundeninteraktion in Echtzeit hinzuzufügen
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.
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.
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.
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服务器建立连接。
在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
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. 🎜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. 🎜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. 🎜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!