Heim  >  Artikel  >  Backend-Entwicklung  >  PHP und MQTT: Erstellen von Anwendungen basierend auf dem Publish-Subscribe-Muster

PHP und MQTT: Erstellen von Anwendungen basierend auf dem Publish-Subscribe-Muster

PHPz
PHPzOriginal
2023-07-09 12:31:391012Durchsuche

PHP und MQTT: Anwendungen basierend auf dem Publish-Subscribe-Modell erstellen

Einführung:
Mit der rasanten Entwicklung des Internets der Dinge müssen immer mehr Geräte in Echtzeit miteinander kommunizieren. MQTT (Message Queuing Telemetry Transport) ist ein leichtes Nachrichtenübertragungsprotokoll, das eine effiziente Kommunikation in Netzwerkumgebungen mit geringer Bandbreite und instabilen Netzwerken erreichen kann. In Kombination mit der PHP-Sprache können wir MQTT verwenden, um Anwendungen basierend auf dem Publish-Subscribe-Modell zu erstellen. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP und MQTT einen einfachen Herausgeber und Abonnenten erstellen.

  1. Umgebungsvorbereitung:
    Bevor wir beginnen, müssen wir sicherstellen, dass PHP- und MQTT-Erweiterungen installiert sind. Sie kann über den folgenden Befehl installiert werden:

    composer require eclampsia89/php-mqtt

    Diese Erweiterung bietet Funktionalität zur Kommunikation mit einem MQTT-Broker.

  2. MQTT-Client erstellen:
    Wir müssen zunächst einen MQTT-Client für Verbindung und Kommunikation erstellen. Unten finden Sie eine einfache MQTT-Klasse.

    <?php
    require 'vendor/autoload.php';
    
    use eclampsia89MQTTProtocol;
    use eclampsia89MQTTMessageType;
    
    class MQTTClient
    {
     private $client;
    
     public function __construct($clientId, $broker, $port)
     {
         $this->client = new Protocol($broker, $port, $clientId);
     }
    
     public function connect()
     {
         $this->client->connect();
     }
    
     public function subscribe($topic)
     {
         $this->client->subscribe($topic);
     }
    
     public function publish($topic, $message)
     {
         $this->client->publish($topic, $message);
     }
    
     public function disconnect()
     {
         $this->client->disconnect();
     }
    
     public function loop()
     {
         $this->client->loop();
     }
    }

    In dieser Klasse verwenden wir eclampsia89MQTTProtocol, um eine Verbindung zum Broker herzustellen, und verwenden die Methode connect zum Herstellen einer Verbindung. Wir können die Methode subscribe verwenden, um ein Thema zu abonnieren, und die Methode publish, um Nachrichten zu veröffentlichen. Zum Schluss verwenden wir die Methode disconnect, um die Verbindung zu trennen. eclampsia89MQTTProtocol来连接代理,并使用connect方法进行连接。我们可以使用subscribe方法来订阅主题,使用publish方法来发布消息。最后,我们使用disconnect方法来断开连接。

  3. 创建发布者和订阅者:
    现在,我们可以创建一个发布者和一个订阅者来进行实际的通信。下面是一个简单的示例。

    <?php
    require 'MQTTClient.php';
    
    // 创建发布者
    $publisher = new MQTTClient('publisher', 'mqtt.broker.com', 1883);
    $publisher->connect();
    
    // 发布消息
    $publisher->publish('topic', 'Hello, subscribers!');
    
    // 断开连接
    $publisher->disconnect();
    
    // 创建订阅者
    $subscriber = new MQTTClient('subscriber', 'mqtt.broker.com', 1883);
    $subscriber->connect();
    
    // 订阅主题
    $subscriber->subscribe('topic');
    
    // 循环等待消息
    while (true) {
     $subscriber->loop();
    }
    
    // 断开连接
    $subscriber->disconnect();

    在这个示例中,我们创建了一个名为“publisher”的发布者,并连接到MQTT代理。然后,我们使用publish方法发布了一个消息,主题为“topic”。最后,我们断开连接。

接下来,我们创建了一个名为“subscriber”的订阅者,并连接到MQTT代理。然后,我们使用subscribe方法订阅了主题为“topic”的消息。通过调用loop

  1. Herausgeber und Abonnenten erstellen:

    Jetzt können wir einen Herausgeber und einen Abonnenten erstellen, um die eigentliche Kommunikation durchzuführen. Unten finden Sie ein einfaches Beispiel.

    php publisher.php

    In diesem Beispiel erstellen wir einen Herausgeber mit dem Namen „publisher“ und stellen eine Verbindung zum MQTT-Broker her. Anschließend verwenden wir die Methode publish, um eine Nachricht mit dem Thema „topic“ zu veröffentlichen. Schließlich trennen wir uns.

Als nächstes erstellen wir einen Abonnenten namens „subscriber“ und verbinden uns mit dem MQTT-Broker. Dann verwenden wir die Methode subscribe, um die Nachricht mit dem Thema „topic“ zu abonnieren. Durch Aufrufen der Methode loop können wir weiterhin auf Nachrichten vom Agenten warten und diese empfangen.


🎜Führen Sie das Beispiel aus: 🎜Jetzt können wir dieses Beispiel ausführen, um zu testen, ob unser Herausgeber und unser Abonnent ordnungsgemäß funktionieren. Der folgende Befehl kann in der Befehlszeile ausgeführt werden: 🎜
php subscriber.php
rrreee🎜 Wenn wir uns die Ausgabe des Abonnenten ansehen, können wir sehen, dass er die Nachricht vom Herausgeber erhalten hat. 🎜🎜🎜🎜Fazit: 🎜Durch die Verwendung von PHP und MQTT können wir problemlos Anwendungen basierend auf dem Publish-Subscribe-Muster erstellen. In diesem Artikel haben wir Ihnen gezeigt, wie Sie mit PHP und der MQTT-Erweiterung einen einfachen Publisher und Subscriber für die Echtzeitkommunikation erstellen. Ich hoffe, dass dieser Artikel Ihnen hilft, PHP und MQTT zu verstehen und anzuwenden. 🎜

Das obige ist der detaillierte Inhalt vonPHP und MQTT: Erstellen von Anwendungen basierend auf dem Publish-Subscribe-Muster. 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