PHP と MQTT を使用したリアルタイム注文処理のベスト プラクティス

PHPz
リリース: 2023-07-08 08:52:01
オリジナル
1710 人が閲覧しました

PHP および MQTT を使用したリアルタイム注文処理のベスト プラクティス

インターネットの普及に伴い、ますます多くの企業がビジネスをオンライン プラットフォームに移行し始めており、それが需要の変化につながっています。注文処理のため、ますます緊急性が高まっています。従来の注文処理方法では、データベースをポーリングしたり、WebSocket などのテクノロジを使用したりして、注文情報をリアルタイムでフロントエンドにプッシュすることがよくありますが、この方法は非効率であるだけでなく、データ同期の問題も発生しやすくなります。これらの問題を解決するために、PHP と MQTT を使用してリアルタイム注文処理を実装することができます。以下では、PHP と MQTT を使用してリアルタイム注文処理を行う方法のベスト プラクティスを紹介します。

MQTT (Message Queue Telemetry Transport) は、さまざまなモノのインターネットやマシン間通信のシナリオに適した軽量のメッセージ送信プロトコルです。 MQTT を使用すると、メッセージの信頼性の高い送信とリアルタイムのプッシュを実現でき、リアルタイムの注文処理のニーズに非常に適しています。

まず、MQTT サーバーをインストールして構成する必要があります。一般的な MQTT サーバーには、Eclipse Mosquitto や EMQX などがあります。ここでは Eclipse Mosquitto を例として、次のコマンドを使用して Mosquitto をインストールできます:

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto
ログイン後にコピー

インストールが完了したら、Mosquitto サーバーを構成し、コマンド ラインで mqtt 構成ファイルを開く必要があります:

sudo nano /etc/mosquitto/mosquitto.conf
ログイン後にコピー

ファイル内に次の内容を追加します。

listener 1883

protocol mqtt
ログイン後にコピー

次に、設定ファイルを保存して終了し、Mosquitto サーバーを再起動します。

sudo systemctl restart mosquitto
ログイン後にコピー

次に、MQTT サーバーに接続する必要があります。 PHPを使用して。 phpmqtt/phpmqtt ライブラリを使用して、MQTT クライアントの機能を実装できます。このライブラリは Composer を通じてインストールできます:

composer require phpmqtt/phpmqtt
ログイン後にコピー

インストールが完了したら、PHP コードの記述を開始できます。まず、mqtt.php ファイルを作成し、ライブラリ ファイルを導入します:

require_once 'vendor/autoload.php';
use PhpMqttClientMqttClient;
ログイン後にコピー

次に、MQTT サーバーに接続する必要があります:

$client = new MqttClient('localhost', 1883, 'client-1');

$client->connect();
ログイン後にコピー

これで、MQTT サーバーに正常に接続されました。次に、注文処理のトピックをサブスクライブし、処理ロジックを定義する必要があります。

$client->subscribe('order/process', function (string $topic, string $message) {
    // 处理订单信息
    // ...

    // 发送处理结果
    $client->publish('order/status', 'processed');
});
ログイン後にコピー

上記のコードは、order/process という名前のトピックをサブスクライブし、メッセージの受信時にコールバック関数を実行します。コールバック関数では、カスタム注文処理ロジックを追加できます。処理が完了したら、publish メソッドを使用して、処理結果を order/status という名前のトピックに送信できます。

完全な mqtt.php コードは次のとおりです。

loop(true);
ログイン後にコピー

$client->loop(true) 上のコードは必要な呼び出しであり、クライアントを実行し続けて受信を可能にします。そしてメッセージを処理します。

これで、他の PHP コードを使用して注文送信をシミュレートできるようになります。たとえば、send_order.php ファイルを作成できます。

<?php
require_once 'vendor/autoload.php';
use PhpMqttClientMqttClient;

$client = new MqttClient('localhost', 1883, 'client-2');

$client->connect();

$client->publish('order/process', 'new order');

$client->loop(true);
ログイン後にコピー

上記のコードは、MQTT サーバーに接続し、publish メソッドを通じて新しい注文メッセージを注文/プロセス トピックに送信します。

上記のコード例を通じて、PHP と MQTT に基づいたリアルタイムの注文処理を実装できます。新しい注文が送信されると、注文処理ロジックがトリガーされ、処理結果が指定されたトピックに公開されます。フロントエンドは、対応するトピックをサブスクライブすることで注文状況をリアルタイムで取得できます。

要約すると、PHP と MQTT を使用してリアルタイムの注文処理を実現することは、効率的で信頼性が高く、実装が簡単な方法です。 MQTT のメッセージ プッシュ メカニズムにより、データベースのポーリングや複雑なテクノロジの使用を回避して、リアルタイムのデータ同期を実現できます。この記事で説明したベスト プラクティスが、リアルタイムの注文処理に適用するのに役立つことを願っています。

以上がPHP と MQTT を使用したリアルタイム注文処理のベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート