Heim  >  Artikel  >  Backend-Entwicklung  >  So entwickeln Sie Echtzeit-Nachrichten-Push-Funktionen mit PHP und MQTT

So entwickeln Sie Echtzeit-Nachrichten-Push-Funktionen mit PHP und MQTT

王林
王林Original
2023-07-07 22:06:23955Durchsuche

So entwickeln Sie eine Echtzeit-Nachrichten-Push-Funktion mit PHP und MQTT

Übersicht
Mit der rasanten Entwicklung der Internet-Technologie ist Echtzeit-Nachrichten-Push zu einer der wesentlichen Funktionen in vielen Anwendungen geworden. Durch Echtzeit-Nachrichten-Push können wir Funktionen wie Instant Messaging und Echtzeit-Nachrichtenaktualisierungen realisieren. In diesem Artikel wird erläutert, wie Sie mithilfe des PHP- und MQTT-Protokolls (Message Queuing Telemetry Transport) eine Echtzeit-Nachrichten-Push-Funktion entwickeln.

Was ist MQTT?
MQTT ist ein leichtes Protokoll, das Kommunikationsunterstützung für IoT-Geräte in Netzwerkumgebungen mit geringer Bandbreite, hoher Latenz und unzuverlässigen Netzwerken bietet. MQTT basiert auf dem Publish/Subscribe-Modell, bei dem der Herausgeber (Publisher) Nachrichten zu einem bestimmten Thema (Topic) veröffentlicht und der Abonnent (Subscriber) ein bestimmtes Thema abonnieren und entsprechende Nachrichten empfangen kann.

Vorbereitung
Bevor wir mit der Entwicklung beginnen, müssen wir die folgenden Vorbereitungen treffen:

  1. PHP installieren: Stellen Sie sicher, dass PHP installiert ist und die Versionsanforderung über 5.6 liegt;
  2. Mosquitto-Bibliothek installieren: Mosquito ist eine Open-Source-Implementierung von MQTT . Die Mosquito-Bibliothek kann über den folgenden Befehl installiert werden:

    sudo apt-get install mosquitto

    Dadurch werden die Mosquito-Laufzeitbibliothek und der Client installiert.

Entwicklungsschritte

  1. Installieren Sie die MQTT-PHP-Erweiterung. Wir können die PHP-MQTT-Erweiterung verwenden. Sie können die MQTT-PHP-Erweiterung durch die folgenden Schritte installieren:

    git clone https://github.com/mgdm/Mosquitto-PHP.git
    cd Mosquitto-PHP
    phpize
    ./configure
    make
    sudo make install

    Stellen Sie sicher, dass der Pfad zur drahtlosen Erweiterung php.ini zum Installationsverzeichnis hinzugefügt wird, und starten Sie dann den Apache/nginx-Server neu.

  2. Publisher entwickeln

    <?php
    require("phpMQTT.php");
    
    $server = "mqtt服务器IP地址";   // MQTT服务器地址
    $port = 1883;                   // MQTT服务器端口号
    $username = "用户名";           // MQTT服务器用户名
    $password = "密码";             // MQTT服务器密码
    $client_id = "发布者ID";        // 发布者ID
    
    $mqtt = new phpMQTT($server, $port, $client_id);
    
    if ($mqtt->connect(true, NULL, $username, $password)) {
        $topic = "发布的主题";      // 发布的主题
        $message = "你好,这是一条实时消息。"; // 要发布的消息
        $mqtt->publish($topic, $message, 0);
        $mqtt->close();
    } else {
        echo "连接失败!";
    }

    Der obige Code erstellt eine Instanz des MQTT-Publishers, indem er eine Verbindung zum angegebenen MQTT-Server herstellt und eine Nachricht zum angegebenen Thema veröffentlicht.

  3. Abonnenten entwickeln

    <?php
    require("phpMQTT.php");
    
    $server = "mqtt服务器IP地址";   // MQTT服务器地址
    $port = 1883;                   // MQTT服务器端口号
    $username = "用户名";           // MQTT服务器用户名
    $password = "密码";             // MQTT服务器密码
    $client_id = "订阅者ID";        // 订阅者ID
    
    $mqtt = new phpMQTT($server, $port, $client_id);
    
    if ($mqtt->connect(true, NULL, $username, $password)) {
        $topic = "订阅的主题";      // 订阅的主题
        $mqtt->subscribe($topic, 0);
        while ($mqtt->proc()) {
            // 在这里编写自己的业务逻辑
        }
        $mqtt->close();
    } else {
        echo "连接失败!";
    }

    Der obige Code erstellt eine Instanz eines MQTT-Abonnenten und erhält entsprechende Nachrichten, indem er eine Verbindung zum angegebenen MQTT-Server herstellt und ein bestimmtes Thema abonniert.

  4. Testen Sie den Nachrichten-Push in Echtzeit.
  5. Führen Sie den verlegerseitigen Code (Herausgeber) auf dem Server aus. Sie können über den Browser auf die Seite zugreifen, um den Nachrichten-Push in Echtzeit auszulösen. Sie können dem Abonnentencode (Abonnenten) Ihre eigene Geschäftslogik hinzufügen, z. B. die Aktualisierung des Seiteninhalts in Echtzeit.
Zusammenfassung

Durch die gemeinsame Verwendung der PHP- und MQTT-Protokolle können wir problemlos eine Nachrichten-Push-Funktion in Echtzeit implementieren. Im obigen Beispiel haben wir das Publish/Subscribe-Muster zum Veröffentlichen und Empfangen von Nachrichten verwendet. Im eigentlichen Entwicklungsprozess können weitere Erweiterungen und Anpassungen entsprechend den eigenen Bedürfnissen durchgeführt werden. Ich hoffe, dieser Artikel ist hilfreich für Sie!

Das obige ist der detaillierte Inhalt vonSo entwickeln Sie Echtzeit-Nachrichten-Push-Funktionen mit PHP und MQTT. 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