ホームページ >バックエンド開発 >PHPチュートリアル >PHP と MQTT: パブリッシュ/サブスクライブ パターンに基づいたアプリケーションの構築

PHP と MQTT: パブリッシュ/サブスクライブ パターンに基づいたアプリケーションの構築

PHPz
PHPzオリジナル
2023-07-09 12:31:391034ブラウズ

PHP と MQTT: パブリッシュ/サブスクライブ モデルに基づいたアプリケーションの構築

はじめに:
モノのインターネットの急速な発展に伴い、リアルタイムで相互に通信する必要があるデバイスがますます増えています。 。 MQTT (Message Queuing Telemetry Transport) は、低帯域幅で不安定なネットワーク環境でも効率的な通信を実現できる軽量のメッセージ送信プロトコルです。 PHP 言語と組み合わせると、MQTT を使用して、パブリッシュ/サブスクライブ モデルに基づいたアプリケーションを構築できます。この記事では、PHP と MQTT を使用して簡単なパブリッシャーとサブスクライバーを作成する方法を紹介します。

  1. 環境の準備:
    始める前に、PHP および MQTT 拡張機能がインストールされていることを確認する必要があります。次のコマンドを使用してインストールできます。

    composer require eclampsia89/php-mqtt

    この拡張機能は、MQTT ブローカーと通信する機能を提供します。

  2. MQTT クライアントの構築:
    まず、接続と通信用の MQTT クライアントを作成する必要があります。以下は単純な MQTT クラスです。

    <?php
    require 'vendor/autoload.php';
    
    use eclampsia89MQTTProtocol;
    use eclampsia89MQTTMessageType;
    
    class MQTTClient
    {
     private $client;
    
     public function __construct($clientId, $broker, $port)
     {
         $this->client = new Protocol($broker, $port, $clientId);
     }
    
     public function connect()
     {
         $this->client->connect();
     }
    
     public function subscribe($topic)
     {
         $this->client->subscribe($topic);
     }
    
     public function publish($topic, $message)
     {
         $this->client->publish($topic, $message);
     }
    
     public function disconnect()
     {
         $this->client->disconnect();
     }
    
     public function loop()
     {
         $this->client->loop();
     }
    }

    このクラスでは、eclampsia89MQTTProtocol を使用してブローカーに接続し、connect メソッドを使用して接続します。 subscribe メソッドを使用してトピックをサブスクライブし、publish メソッドを使用してメッセージをパブリッシュできます。最後に、disconnect メソッドを使用して切断します。

  3. パブリッシャーとサブスクライバーの作成:
    ここで、実際の通信用にパブリッシャーとサブスクライバーを作成できます。以下に簡単な例を示します。

    <?php
    require 'MQTTClient.php';
    
    // 创建发布者
    $publisher = new MQTTClient('publisher', 'mqtt.broker.com', 1883);
    $publisher->connect();
    
    // 发布消息
    $publisher->publish('topic', 'Hello, subscribers!');
    
    // 断开连接
    $publisher->disconnect();
    
    // 创建订阅者
    $subscriber = new MQTTClient('subscriber', 'mqtt.broker.com', 1883);
    $subscriber->connect();
    
    // 订阅主题
    $subscriber->subscribe('topic');
    
    // 循环等待消息
    while (true) {
     $subscriber->loop();
    }
    
    // 断开连接
    $subscriber->disconnect();

    この例では、「publisher」という名前のパブリッシャーを作成し、MQTT ブローカーに接続します。次に、publish メソッドを使用して、トピック「topic」を使用してメッセージを公開しました。最後に、切断します。

次に、「subscriber」という名前のサブスクライバーを作成し、MQTT ブローカーに接続します。次に、subscribe メソッドを使用して、トピック「topic」を持つメッセージをサブスクライブします。 loop メソッドを呼び出すことで、エージェントからのメッセージを待機および受信し続けることができます。

  1. サンプルを実行します:
    これで、このサンプルを実行して、パブリッシャーとサブスクライバーが適切に動作しているかどうかをテストできます。次のコマンドは、コマンド ラインで実行できます。

    php publisher.php
    php subscriber.php

    サブスクライバの出力を見ると、サブスクライバがパブリッシャからメッセージを受信したことがわかります。

結論:
PHP と MQTT を使用すると、パブリッシュ/サブスクライブ パターンに基づいたアプリケーションを簡単に構築できます。この記事では、PHP と MQTT 拡張機能を使用して、リアルタイム通信用の単純なパブリッシャーとサブスクライバーを作成する方法を説明しました。この記事が、PHP と MQTT の理解と応用に役立つことを願っています。

以上がPHP と MQTT: パブリッシュ/サブスクライブ パターンに基づいたアプリケーションの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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