ホームページ >バックエンド開発 >PHPチュートリアル >PHP と MQTT を使用してリアルタイムの顧客対話機能を Web サイトに追加する方法

PHP と MQTT を使用してリアルタイムの顧客対話機能を Web サイトに追加する方法

PHPz
PHPzオリジナル
2023-07-08 10:24:09787ブラウズ

PHP と MQTT を使用して顧客とのリアルタイムの対話を Web サイトに追加する方法

インターネットの急速な発展に伴い、Web サイトの対話性もユーザー エクスペリエンスの重要な部分になりました。顧客とのリアルタイムの対話を実現するには、従来の Web ページ要求応答モデルではもはやニーズを満たすことができません。 MQTT (Message Queuing Telemetry Transport) は、軽量のパブリッシュ/サブスクライブ プロトコルとして、リアルタイム通信ソリューションを提供します。この記事では、PHP と MQTT を使用して、顧客とのリアルタイムの対話を Web サイトに追加する方法を紹介します。

  1. MQTT サーバーのインストール

まず、MQTT サーバーをセットアップする必要があります。一般的に使用される MQTT サーバーには、Mosquitto、EMQX などが含まれます。 Mosquitto を例に挙げると、次のコマンドを使用して Linux システムにインストールできます:

sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients

インストールが完了したら、MQTT サーバーを起動し、後続のコード用に「testtopic」という名前のトピックを作成できます。例。

  1. PHP の MQTT 拡張ライブラリのサポートを開始する

PHP には MQTT サポートが組み込まれていません。MQTT 操作に PHP を使用する前に、MQTT PHP 拡張ライブラリをインストールする必要があります。次の手順で拡張ライブラリをインストールできます。

git clone https://github.com/bluerhinos/phpMQTT.git
cd phpMQTT
phpize
./configure
make
sudo make install

インストールが完了したら、php.ini ファイルに次の行を追加します。

extension=php_mosquitto.so

次に、PHP サービスを再起動して、それは効果的です。

  1. MQTT サーバーへの接続

PHP コードでは、まず MQTT サーバーに接続する必要があります。サンプル コードは次のとおりです。

<?php
$host = "localhost"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$clientId = "client1"; // 客户端ID

$client = new MosquittoClient($clientId);
$client->connect($host, $port, 60);
?>

サーバーに接続する前に、MQTT ライブラリを導入し、MQTT サーバーのアドレス、ポート、クライアント ID を設定する必要があります。 connect メソッドを通じて、MQTT サーバーとの接続を確立できます。

  1. トピックのサブスクライブ

MQTT では、トピックのサブスクライブは、パブリッシュ/サブスクライブ モデルを実装するための中心的な操作です。 MQTT クライアントを使用して、関心のあるトピックをサブスクライブできます。サンプル コードは次のとおりです。

<?php
$topic = "testtopic"; // 订阅的主题

$client->subscribe($topic, 1);
?>

subscribe メソッドを通じて、指定されたトピックをサブスクライブできます。最初のパラメータはサブスクライブするトピックで、2 番目のパラメータはサブスクリプションの QoS (サービス品質) レベルを示し、通常は 1 に設定できます。

  1. メッセージの受信

トピックに登録すると、MQTT サーバーからメッセージを受信できるようになります。サンプル コードは次のとおりです。

<?php
$client->onMessage(function ($message) {
    $topic = $message->topic;
    $payload = $message->payload;

    // 处理接收到的消息
    // ...

    // 返回响应给客户端
    // ...
});

$client->loopForever();
?>

onMessage メソッドでは、受信したメッセージを処理し、さまざまなメッセージ タイプに対応する操作を実行できます。その後、クライアントに応答を返すことができます。

  1. メッセージのパブリッシュ

メッセージを受信するだけでなく、MQTT クライアントを使用してメッセージをパブリッシュすることもできます。サンプル コードは次のとおりです。

<?php
$topic = "testtopic"; // 发布的主题
$payload = "Hello, world!"; // 发布的消息内容

$client->publish($topic, $payload, 1, false);
?>

publish メソッドを通じて、指定されたメッセージをパブリッシュできます。最初のパラメータは公開されたトピック、2 番目のパラメータは公開されたメッセージの内容、3 番目のパラメータはメッセージの QoS レベル、4 番目のパラメータはメッセージを保持するかどうかを示します。

  1. 切断

MQTT 接続が必要なくなったら、適時に切断する必要があります。サンプル コードは次のとおりです。

<?php
$client->disconnect();
unset($client);
?>

disconnect メソッドを通じて、MQTT サーバーから切断し、リソースを解放できます。

上記の 7 つの手順を通じて、PHP と MQTT を使用して、顧客とのリアルタイムの対話を Web サイトに追加できます。トピックを購読し、メッセージを公開することで、リアルタイムのコミュニケーションを簡単に実現でき、Web サイトに双方向性とリアルタイム性を追加できます。この記事がお役に立てば幸いです!

以上がPHP と MQTT を使用してリアルタイムの顧客対話機能を Web サイトに追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。