ホームページ >バックエンド開発 >PHPチュートリアル >PHP と MQTT を使用してリアルタイム メッセージ プッシュ機能を開発する方法

PHP と MQTT を使用してリアルタイム メッセージ プッシュ機能を開発する方法

王林
王林オリジナル
2023-07-07 22:06:23961ブラウズ

PHP と MQTT を使用してリアルタイム メッセージ プッシュ機能を開発する方法

概要
インターネット技術の急速な発展に伴い、リアルタイム メッセージ プッシュは多くのアプリケーションで不可欠な機能の 1 つになりました。 。リアルタイム メッセージ プッシュにより、インスタント メッセージングやリアルタイム メッセージ更新などの機能を実現できます。この記事では、PHP と MQTT (Message Queuing Telemetry Transport) プロトコルを使用して、リアルタイム メッセージ プッシュ機能を開発する方法を紹介します。

MQTT とは何ですか?
MQTT は、低帯域幅、高遅延、信頼性の低いネットワーク環境で IoT デバイスの通信サポートを提供するように設計された軽量プロトコルです。 MQTT はパブリッシュ/サブスクライブ モデルに基づいており、パブリッシャーは特定のトピックにメッセージをパブリッシュし、サブスクライバーは特定のトピックをサブスクライブして、対応するメッセージを受信できます。

準備
開発を開始する前に、次の準備を満たす必要があります。

  1. PHP のインストール: PHP がインストールされていて、バージョン要件が 5.6 以降であることを確認します。
  2. mosquitto ライブラリをインストールします: mosquitto は MQTT のオープン ソース実装です。次のコマンドを使用して mosquitto ライブラリをインストールできます:

    sudo apt-get install mosquitto

    これにより、mosquitto ランタイム ライブラリとクライアントがインストールされます;

開発手順

  1. MQTT PHP 拡張機能のインストール
    MQTT プロトコルの使用を容易にするために、MQTT を使用できます。 PHPの拡張子。 MQTT PHP 拡張機能は、次の手順でインストールできます。

    git clone https://github.com/mgdm/Mosquitto-PHP.git
    cd Mosquitto-PHP
    phpize
    ./configure
    make
    sudo make install

    php.ini ワイヤレス拡張機能へのパスがインストール ディレクトリに追加されたことを確認した後、Apache/nginx サーバーを再起動します。

  2. パブリッシャーの開発 (パブリッシャー)

    <?php
    require("phpMQTT.php");
    
    $server = "mqtt服务器IP地址";   // MQTT服务器地址
    $port = 1883;                   // MQTT服务器端口号
    $username = "用户名";           // MQTT服务器用户名
    $password = "密码";             // MQTT服务器密码
    $client_id = "发布者ID";        // 发布者ID
    
    $mqtt = new phpMQTT($server, $port, $client_id);
    
    if ($mqtt->connect(true, NULL, $username, $password)) {
        $topic = "发布的主题";      // 发布的主题
        $message = "你好,这是一条实时消息。"; // 要发布的消息
        $mqtt->publish($topic, $message, 0);
        $mqtt->close();
    } else {
        echo "连接失败!";
    }

    上記のコードは、指定された MQTT サーバーに接続し、指定されたテーマにメッセージをパブリッシュすることによって、MQTT パブリッシャーのインスタンスを作成します。

  3. サブスクライバー (サブスクライバー) の開発

    <?php
    require("phpMQTT.php");
    
    $server = "mqtt服务器IP地址";   // MQTT服务器地址
    $port = 1883;                   // MQTT服务器端口号
    $username = "用户名";           // MQTT服务器用户名
    $password = "密码";             // MQTT服务器密码
    $client_id = "订阅者ID";        // 订阅者ID
    
    $mqtt = new phpMQTT($server, $port, $client_id);
    
    if ($mqtt->connect(true, NULL, $username, $password)) {
        $topic = "订阅的主题";      // 订阅的主题
        $mqtt->subscribe($topic, 0);
        while ($mqtt->proc()) {
            // 在这里编写自己的业务逻辑
        }
        $mqtt->close();
    } else {
        echo "连接失败!";
    }

    上記のコードは、MQTT サブスクライバーのインスタンスを作成し、指定された MQTT サーバーに接続して特定のトピックをサブスクライブすることによってそれを取得します。対応するメッセージ。

  4. リアルタイム メッセージ プッシュをテストする
    サーバー上でパブリッシャー側 (パブリッシャー) コードを実行すると、ブラウザーからページにアクセスして、リアルタイム メッセージ プッシュをトリガーできます。ページのコンテンツをリアルタイムで更新するなど、独自のビジネス ロジックをサブスクライバー側 (サブスクライバー) コードに追加できます。

概要
PHP と MQTT プロトコルを組み合わせることで、リアルタイム メッセージ プッシュ機能を簡単に実装できます。上の例では、パブリッシュ/サブスクライブ パターンを使用してメッセージをパブリッシュおよび受信しました。実際の開発プロセスでは、ニーズに応じてさらに拡張やカスタマイズを行うことができます。この記事がお役に立てば幸いです!

以上がPHP と MQTT を使用してリアルタイム メッセージ プッシュ機能を開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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