Heim  >  Artikel  >  Backend-Entwicklung  >  Anleitung zum Aufbau und zur Bereitstellung einer PHP-Implementierungslösung für das MQTT-Protokoll

Anleitung zum Aufbau und zur Bereitstellung einer PHP-Implementierungslösung für das MQTT-Protokoll

王林
王林Original
2023-07-10 23:55:382600Durchsuche

MQTT (Message Queuing Telemetry Transport) ist ein leichtes Nachrichtenübertragungsprotokoll, das häufig für die Kommunikation zwischen IoT-Geräten verwendet wird. Als weit verbreitete Server-Skriptsprache bietet PHP auch viele Lösungen zur Implementierung des MQTT-Protokolls. In diesem Artikel wird erläutert, wie eine PHP-basierte MQTT-Protokollimplementierungslösung erstellt und bereitgestellt wird, und es werden relevante Codebeispiele bereitgestellt.

1. Vorbereitung

Bevor Sie mit der Erstellung und Bereitstellung beginnen, müssen Sie sicherstellen, dass PHP und zugehörige Erweiterungen auf dem Server installiert wurden. Die in diesem Artikel verwendete Erweiterung ist phpMQTT, eine Open-Source-MQTT-Clientbibliothek, die eine Reihe praktischer Funktionen bietet.

Installieren Sie zunächst die phpMQTT-Erweiterung mit dem folgenden Befehl:

composer require bluerhinos/phpmqtt

2. Stellen Sie eine Verbindung zum MQTT-Broker her.

Um eine Verbindung mit dem MQTT-Broker über phpMQTT herzustellen, müssen Sie die Adresse, den Port, den Benutzernamen und das Passwort des Brokers angeben . Das Folgende ist ein Beispiel:

<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "client_id");

if ($mqtt->connect(true, NULL, "username", "password")) {
   // 连接成功
} else {
   // 连接失败
}

$mqtt->close();
?>

Im phpMQTT-Konstruktor werden die Adresse des MQTT-Brokers (mqtt.example.com) und die Portnummer (1883) übergeben. Gleichzeitig wird auch eine Client-ID übergeben, die Sie selbst ändern können. phpMQTT构造函数中,传入了MQTT代理的地址(mqtt.example.com)和端口号(1883)。同时,还传入了一个客户端ID,您可以自行修改。

接下来,使用connect函数连接到MQTT代理。该函数的第一个参数指定了是否启用MQTT代理的持久化会话(true表示启用),第二个参数是代理的SSL证书路径,第三个和第四个参数是代理的用户名和密码。如果连接成功,将执行连接成功的代码块。否则,将执行连接失败的代码块。

最后,在需要断开连接的地方,使用close函数关闭MQTT连接。

3. 发布和订阅消息

发布和订阅消息是MQTT的核心功能之一。在phpMQTT中,可以使用publish函数发布消息,使用subscribe函数订阅消息。

以下是一个发布消息的示例:

<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "client_id");

if ($mqtt->connect(true, NULL, "username", "password")) {
   $mqtt->publish("topic", "message");
} else {
   // 连接失败
}

$mqtt->close();
?>

在上述示例中,调用了publish函数,将消息发布到名为"topic"的主题上。

以下是一个订阅消息的示例:

<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "client_id");

if ($mqtt->connect(true, NULL, "username", "password")) {
   $topics = array("topic1", "topic2");
   $mqtt->subscribe($topics);
   while ($mqtt->proc()) {
      // 处理订阅的消息
   }
} else {
   // 连接失败
}

$mqtt->close();
?>

在上述示例中,调用subscribe函数,传入一个主题数组,即可订阅多个主题的消息。然后使用一个循环,调用proc函数,循环监听订阅的消息。在proc

Als nächstes verwenden Sie die Funktion connect, um eine Verbindung zum MQTT-Broker herzustellen. Der erste Parameter dieser Funktion gibt an, ob die dauerhafte Sitzung des MQTT-Brokers aktiviert werden soll (wahr bedeutet aktiviert), der zweite Parameter ist der SSL-Zertifikatspfad des Brokers und der dritte und vierte Parameter sind der Benutzername und das Passwort des Brokers. Wenn die Verbindung erfolgreich ist, wird der Verbindungserfolgscodeblock ausgeführt. Andernfalls wird der Codeblock ausgeführt, der keine Verbindung herstellen konnte.

Verwenden Sie abschließend die Funktion close, um die MQTT-Verbindung dort zu schließen, wo die Verbindung getrennt werden muss.

3. Nachrichten veröffentlichen und abonnieren

Das Veröffentlichen und Abonnieren von Nachrichten ist eine der Kernfunktionen von MQTT. In phpMQTT können Sie die Funktion publish zum Veröffentlichen von Nachrichten und die Funktion subscribe zum Abonnieren von Nachrichten verwenden. 🎜🎜Das Folgende ist ein Beispiel für die Veröffentlichung einer Nachricht: 🎜rrreee🎜Im obigen Beispiel wird die Funktion publish aufgerufen, um die Nachricht im Thema „topic“ zu veröffentlichen. 🎜🎜Das Folgende ist ein Beispiel für das Abonnieren einer Nachricht: 🎜rrreee🎜Im obigen Beispiel rufen Sie die Funktion subscribe auf und übergeben ein Themenarray, um Nachrichten aus mehreren Themen zu abonnieren. Rufen Sie dann mithilfe einer Schleife die Funktion proc auf, um die abonnierten Nachrichten in einer Schleife abzuhören. In der Funktion proc kann die empfangene Nachricht verarbeitet werden. 🎜🎜4. Zusammenfassung🎜🎜Dieser Artikel stellt eine PHP-basierte MQTT-Protokollimplementierungslösung vor, verwendet phpMQTT als MQTT-Client-Bibliothek und bietet einige Codebeispiele. Wenn Sie diesen Artikel lesen und dem Beispielcode folgen, können Sie schnell eine PHP-Implementierung des MQTT-Protokolls erstellen und bereitstellen. Natürlich stehen auch andere PHP-Implementierungen des MQTT-Protokolls zur Auswahl, und Sie können das für Ihre Bedürfnisse am besten geeignete Tool auswählen. 🎜🎜Ich hoffe, dieser Artikel kann Ihnen hilfreich sein und wünsche Ihnen viel Erfolg bei der Einrichtung und Bereitstellung! 🎜

Das obige ist der detaillierte Inhalt vonAnleitung zum Aufbau und zur Bereitstellung einer PHP-Implementierungslösung für das MQTT-Protokoll. 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