PHP と MQTT を使用して Web サイトにリアルタイム通知機能を追加する方法
Web アプリケーションのリアルタイム通知機能は、最新の Web サイトでますます普及しています。リアルタイム通知は、ライブ チャット、リアルタイム コメント、新しいメッセージの通知など、さまざまな目的に使用できます。この記事では、PHP と MQTT プロトコルを使用して、Web サイトにリアルタイム通知機能を追加する方法を説明します。
MQTT (Message Queuing Telemetry Transport) は、効率的なインスタント通信を提供するように設計された軽量のメッセージ送信プロトコルです。低帯域幅で不安定なネットワーク環境向けに設計されており、IoT アプリケーションのメッセージ送信に非常に適しています。
MQTT プロトコルはパブリッシュ/サブスクライブ モデルに基づいています。クライアントは特定のトピック (トピック) をサブスクライブできます。新しいメッセージがトピックにパブリッシュされると、サブスクライバーはリアルタイムで通知を受け取ります。
始める前に、次の条件が満たされていることを確認する必要があります:
Mosquitto MQTT 拡張機能をインストールすると、pecl コマンドを使用できます:
pecl install Mosquitto-alpha
この例では、簡単なチャットを作成しますアプリケーションでは、ユーザーはリアルタイムでメッセージを送信したり、他のユーザーからメッセージを受信したりできます。この機能を実装するには、PHP と MQTT を使用します。
まず、MQTT クライアントを作成し、MQTT ブローカーとの接続を確立し、トピックをサブスクライブする必要があります。 phpMQTT ライブラリを使用して、MQTT クライアントの実装を簡素化します。 phpMQTT ライブラリは、次のコードを通じてインストールできます:
composer require bluerhinos/phpmqtt
次に、chat.php
という名前のファイルを作成し、次のコードを追加します。コードでは、最初に mqtt インスタンスを作成し、
と 1883
を MQTT ブローカーのホストとポートとして使用しました。次に、$mqtt->connect()
メソッドを通じて MQTT ブローカーへの接続を確立します。接続が成功した場合は、$mqtt->subscribe("chat_room", 0)
を使用して、chat_room
という名前のトピックをサブスクライブします。最後に、$mqtt->proc()
メソッドを使用して、MQTT ブローカーへの接続を維持します。 次に、
という名前のフロントエンド ファイルを作成し、次のコードを追加します。 <pre class='brush:php;toolbar:false;'><?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代理失败";
}</pre>
上記のコードでは、最初に次のコードを追加します。
メソッドは、MQTT ブローカーとの接続喪失イベントを処理します。 mqtt.onMessageArrived
メソッドでは、新しいメッセージを受信すると、そのメッセージをチャット履歴に追加します。
メソッドを呼び出してコールバック関数を提供することにより、接続が成功した後に chat_room
トピックにサブスクライブします。次に、jQuery を使用して、ページの読み込み時に $("#send_button").click
メソッドを通じてメッセージ送信関数を実装します。 最後に、ブラウザで
ファイルを開くと、チャット インターフェイスが表示されます。 概要
以上がPHP と MQTT を使用して Web サイトにリアルタイム通知を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。