Heim >Backend-Entwicklung >PHP-Tutorial >So fügen Sie Ihrer Website mithilfe von PHP und MQTT Echtzeitbenachrichtigungen hinzu
So fügen Sie Ihrer Website mit PHP und MQTT Echtzeit-Benachrichtigungsfunktionen hinzu
Echtzeit-Benachrichtigungsfunktionen für Webanwendungen werden auf modernen Websites immer beliebter. Echtzeitbenachrichtigungen können für verschiedene Zwecke verwendet werden, z. B. für Live-Chat, Echtzeitkommentare und Benachrichtigungen über neue Nachrichten. In diesem Artikel erklären wir, wie Sie mithilfe des PHP- und MQTT-Protokolls Echtzeit-Benachrichtigungsfunktionen zu Ihrer Website hinzufügen.
MQTT (Message Queuing Telemetry Transport) ist ein leichtes Nachrichtenübertragungsprotokoll, das für eine effiziente Sofortkommunikation entwickelt wurde. Es ist für Netzwerkumgebungen mit geringer Bandbreite und instabilen Netzwerken konzipiert und eignet sich sehr gut für die Nachrichtenübertragung für IoT-Anwendungen.
Das MQTT-Protokoll basiert auf dem Publish/Subscribe-Modell. Der Client kann ein bestimmtes Thema (Thema) abonnieren. Wenn neue Nachrichten zum Thema veröffentlicht werden, erhalten Abonnenten Benachrichtigungen in Echtzeit.
Bevor wir beginnen, müssen wir sicherstellen, dass die folgenden Bedingungen erfüllt sind:
Installieren Sie die Mosquitto MQTT-Erweiterung und Sie können den pecl-Befehl verwenden:
pecl install Mosquitto-alpha
In diesem Beispiel erstellen wir eine einfache Chat-Anwendung, mit der Benutzer Nachrichten senden und von anderen gesendete Nachrichten empfangen können Benutzer in Echtzeit. Wir werden PHP und MQTT verwenden, um diese Funktionalität zu implementieren.
Zuerst müssen wir einen MQTT-Client erstellen, eine Verbindung mit dem MQTT-Broker herstellen und ein Thema abonnieren. Wir werden die phpMQTT-Bibliothek verwenden, um die Implementierung des MQTT-Clients zu vereinfachen. Die phpMQTT-Bibliothek kann über den folgenden Code installiert werden:
composer require bluerhinos/phpmqtt
Dann erstellen wir eine Datei namens chat.php
und fügen den folgenden Code hinzu: chat.php
的文件,并添加以下代码:
<?php require("phpMQTT.php"); $mqtt = new phpMQTT("localhost", 1883, "clientId_" . uniqid()); if ($mqtt->connect()) { $mqtt->subscribe("chat_room", 0); while ($mqtt->proc()) { } $mqtt->close(); } else { echo "连接MQTT代理失败"; }
在上述代码中,我们首先创建了一个mqtt实例,并使用localhost
和1883
作为MQTT代理的主机和端口。然后,我们通过$mqtt->connect()
方法建立与MQTT代理的连接。如果连接成功,则使用$mqtt->subscribe("chat_room", 0)
订阅一个名为chat_room
的主题。最后,我们使用$mqtt->proc()
方法来保持与MQTT代理的连接。
接下来,我们创建一个名为index.html
的前端文件,并添加以下代码:
<!DOCTYPE html> <html> <head> <title>实时聊天</title> <meta charset="utf-8"> <style> #chat_log { height: 300px; overflow-y: scroll; } </style> </head> <body> <h1>实时聊天</h1> <div id="chat_log"></div> <input type="text" id="message" placeholder="请输入消息"> <button id="send_button">发送</button> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script> var clientId = 'web_' + new Date().getTime(); var mqtt = new Paho.MQTT.Client("localhost", 1883, clientId); var topic = "chat_room"; mqtt.onConnectionLost = function(responseObject) { console.log('连接丢失'); }; mqtt.onMessageArrived = function(message) { var msg = message.payloadString; $("#chat_log").append('<p>' + msg + '</p>'); }; mqtt.connect({ onSuccess: function() { mqtt.subscribe(topic); } }); $(document).ready(function() { $("#send_button").click(function() { var message = $("#message").val(); mqtt.send(topic, message); $("#message").val(''); }); }); </script> </body> </html>
在上述代码中,我们首先在mqtt.onConnectionLost
方法中处理与MQTT代理的连接丢失事件。在mqtt.onMessageArrived
方法中,我们接收到新消息时向聊天记录中添加该消息。
通过调用mqtt.connect()
方法并提供一个回调函数,在连接成功后订阅chat_room
主题。然后,我们使用jQuery在页面加载时通过$("#send_button").click
方法来实现发送消息功能。
最后,我们在浏览器中打开index.html
rrreee
localhost
und 1883
als Host und Port des MQTT-Brokers. Anschließend stellen wir über die Methode $mqtt->connect()
eine Verbindung mit dem MQTT-Broker her. Wenn die Verbindung erfolgreich ist, verwenden Sie $mqtt->subscribe("chat_room", 0)
, um ein Thema namens chat_room
zu abonnieren. Schließlich verwenden wir die Methode $mqtt->proc()
, um die Verbindung zum MQTT-Broker aufrechtzuerhalten. Als nächstes erstellen wir eine Frontend-Datei namens index.html
und fügen den folgenden Code hinzu: rrreee
Im obigen Code fügen wir zunächst den folgenden Code inmqtt.onConnectionLost Die Methode behandelt das Verbindungsverlustereignis mit dem MQTT-Broker. Wenn wir in der Methode <code>mqtt.onMessageArrived
eine neue Nachricht erhalten, fügen wir diese dem Chat-Verlauf hinzu. 🎜🎜Durch den Aufruf der Methode mqtt.connect()
und die Bereitstellung einer Rückruffunktion abonnieren Sie das Thema chat_room
, nachdem die Verbindung erfolgreich hergestellt wurde. Dann verwenden wir jQuery, um die Funktion zum Senden von Nachrichten über die Methode $("#send_button").click
zu implementieren, wenn die Seite geladen wird. 🎜🎜Zuletzt öffnen wir die Datei index.html
im Browser und Sie können die Chat-Oberfläche sehen. 🎜🎜Zusammenfassung🎜🎜In diesem Artikel wird erläutert, wie Sie mithilfe der PHP- und MQTT-Protokolle Echtzeit-Benachrichtigungsfunktionen zu Ihrer Website hinzufügen. Wir haben mithilfe der phpMQTT-Bibliothek eine einfache Chat-Anwendung erstellt, mit der Benutzer in Echtzeit Nachrichten senden und Nachrichten von anderen Benutzern empfangen können. Anhand dieses Beispiels können wir sehen, wie das MQTT-Protokoll verwendet werden kann, um eine effiziente Sofortkommunikation zu erreichen, die den Anforderungen moderner Websites entspricht. 🎜Das obige ist der detaillierte Inhalt vonSo fügen Sie Ihrer Website mithilfe von PHP und MQTT Echtzeitbenachrichtigungen hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!