ホームページ バックエンド開発 PHPチュートリアル PHP 開発における MQTT メッセージのサブスクリプションとパブリッシュの実践

PHP 開発における MQTT メッセージのサブスクリプションとパブリッシュの実践

Jul 08, 2023 pm 02:02 PM
mqtt ニュースリリース メッセージ購読

PHP 開発における MQTT の実際的なメッセージのサブスクリプションと公開

はじめに:
モノのインターネットの開発に伴い、メッセージ キュー テレメトリ トランスポート プロトコル (MQTT) がセンサー デバイスとバックエンド アプリケーションの間で通信します。において重要な役割を果たします。 MQTT は軽量プロトコルとして、低エネルギー消費、高い信頼性、拡張性という特徴を備えています。 PHP 開発では、メッセージのサブスクライブとパブリッシュに MQTT が使用されます。これにより、センサー デバイスと簡単に通信し、処理と表示のためにデータをバックエンド アプリケーションに送信できます。この記事では、PHP 開発における MQTT の実際の応用を紹介し、関連するコード例を示します。

1. MQTT の概要:
MQTT は、パブリッシュ/サブスクライブ モデルに基づくメッセージ キュー送信プロトコルです。軽量なバイナリメッセージ形式を採用しており、センサーや組み込みシステムなどのさまざまなハードウェアデバイスに適しています。 MQTT プロトコルには主に、メッセージ パブリッシャーとメッセージ サブスクライバーという 2 つの役割が含まれています。パブリッシャーは特定のトピックにメッセージをパブリッシュし、サブスクライバーは関心のあるトピックをサブスクライブして関連メッセージを受信します。 MQTT プロトコルは、データの信頼性を確保するためのメッセージ QoS (Quality of Service) レベル設定もサポートしています。

2. MQTT サーバーのインストール:
PHP 開発で実際の MQTT を開始する前に、まず MQTT サーバーを構築する必要があります。 MQTT サーバーを構築する簡単な手順は次のとおりです。

  1. Mosquitto などの MQTT サーバーをダウンロードしてインストールします。
  2. MQTT サーバーを実行します。デフォルトのリスニング ポートは 1883 です。

3. PHP での MQTT の使用:
メッセージのサブスクリプションと PHP での公開に MQTT を使用するプロセスは次のとおりです:

  1. MQTT の紹介client library :
    まず、MQTT クライアント ライブラリを導入する必要があります。PHP で一般的に使用される MQTT クライアント ライブラリには、phpMQTT と mosquitto-php があります。この記事では、composer を通じてインストールできる phpMQTT を例に挙げます:

    composer require bluerhinos/phpmqttclient
    ログイン後にコピー
  2. MQTT クライアント構成:
    PHP コードで MQTT 操作を実行する前に、最初に接続を構成する必要があります、サーバーのアドレス、ポート番号、QoS レベルなどが含まれます。以下は設定例です:

    $mqttServer = 'localhost'; // MQTT服务器地址
    $mqttPort = 1883; // MQTT服务器端口
    $mqttClientId = 'php_script'; // 客户端ID
    $mqttUsername = ''; //用户名
    $mqttPassword = ''; // 密码
    ログイン後にコピー
  3. MQTT メッセージのサブスクリプション:
    PHP でトピックをサブスクライブするには、subscribe メソッドを使用できます。以下は例です:

    require('phpMQTT.php');
    $mqtt = new phpMQTT($mqttServer, $mqttPort, $mqttClientId);
    if($mqtt->connect(true, NULL, $mqttUsername, $mqttPassword)) {
      $topics['topic_name'] = array('qos' => 0, 'function' => 'dataCallback');
      $mqtt->subscribe($topics, 0);
      while($mqtt->proc()){
      }
      $mqtt->close();
    } else {
      echo "连接MQTT服务器失败!";
      exit(1);
    }
    function dataCallback($topic, $payload) {
      echo "收到消息:$payload";
    }
    ログイン後にコピー
  4. MQTT メッセージのパブリッシュ:
    PHP でメッセージをパブリッシュするには、publish メソッドを使用できます。以下に例を示します:

    require('phpMQTT.php');
    $mqtt = new phpMQTT($mqttServer, $mqttPort, $mqttClientId);
    if($mqtt->connect(true, NULL, $mqttUsername, $mqttPassword)) {
      $mqtt->publish('topic_name', '消息内容', 0);
      $mqtt->close();
    } else {
      echo "连接MQTT服务器失败!";
      exit(1);
    }
    ログイン後にコピー

4. 実用的なアプリケーション:
以下では、メッセージ サブスクリプションに MQTT を使用する実際のアプリケーションを示すために、単純な実際のアプリケーションを例として取り上げます。そして PHP でパブリッシュします。

  1. シナリオの説明:
    MQTT プロトコルを介してトピック 温度 を持つチャネルにリアルタイムの温度を公開する温度センサー デバイスがあるとします。 PHP アプリケーションは、この温度データをリアルタイムで受信して処理する必要があります。これを行うために、このトピックをサブスクライブし、Web インターフェイスを通じてリアルタイムの温度を表示します。
  2. PHP コード例:
    温度データをサブスクライブして Web インターフェイスに表示:
require('phpMQTT.php');

$mqttServer = 'localhost'; // MQTT服务器地址
$mqttPort = 1883; // MQTT服务器端口
$mqttClientId = 'php_script'; // 客户端ID

$mqtt = new phpMQTT($mqttServer, $mqttPort, $mqttClientId);

if($mqtt->connect(true, NULL, NULL, NULL)) {
    $topics['temperature'] = array('qos' => 0, 'function' => 'temperatureCallback');
    $mqtt->subscribe($topics, 0);

    echo "开始订阅温度数据...
";

    while($mqtt->proc()){
    }

    $mqtt->close();
} else {
    echo "连接MQTT服务器失败!";
    exit(1);
}

function temperatureCallback($topic, $payload) {
    echo "收到温度消息:$payload
";
    // 在这里进行温度数据的处理,如存储到数据库或展示在Web界面上
}
ログイン後にコピー
  1. Web インターフェイスの例:
    温度データをリアルタイムで表示Web インターフェイス経由 サンプル コードは次のとおりです。
<!DOCTYPE html>
<html>
<head>
    <title>温度监控</title>
</head>
<body>
    <h1>温度监控</h1>
    <div id="temperature"></div>

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        $(document).ready(function() {
            var mqttServer = 'mqtt://localhost:1883';
            var clientId = 'web_client';
            var temperatureTopic = 'temperature';

            var client = mqtt.connect(mqttServer, { clientId: clientId });

            client.on('connect', function() {
                client.subscribe(temperatureTopic);
            });

            client.on('message', function(topic, message) {
                if (topic === temperatureTopic) {
                    var temperature = message.toString();
                    $('#temperature').text('当前温度:' + temperature + '℃');
                }
            });
        });
    </script>
</body>
</html>
ログイン後にコピー

上記のサンプル コードは、メッセージのサブスクリプションと PHP でのパブリッシュに MQTT を使用する実際のアプリケーションを示しています。温度データをサブスクライブすることで、温度データをリアルタイムで受信して処理および表示でき、メッセージをパブリッシュすることでセンサー デバイスに制御命令を送信できます。実際の開発では、特定のニーズに応じてコードを拡張および調整できます。

結論:
この記事では、PHP 開発における MQTT メッセージのサブスクリプションとパブリッシュの実際的なアプリケーションを紹介し、関連するコード例を示します。 MQTT プロトコルを使用することで、PHP アプリケーションはセンサーデバイスと簡単に通信し、リアルタイムのデータ送信と処理を実現できます。 IoT アプリケーション開発において、メッセージングに MQTT を使用すると、通信効率と信頼性が向上し、アプリケーション開発に利便性がもたらされます。

以上がPHP 開発における MQTT メッセージのサブスクリプションとパブリッシュの実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 開発における MQTT の耐障害性とセキュリティに関する考慮事項 PHP 開発における MQTT の耐障害性とセキュリティに関する考慮事項 Jul 08, 2023 am 11:34 AM

PHP 開発における MQTT の耐障害性とセキュリティに関する考慮事項の概要: MQTT (MessageQueuingTelemetryTransport) は、モノのインターネットおよびマシン間 (M2M) 通信で広く使用されている軽量の通信プロトコルです。 PHP 開発で MQTT を使用すると、リアルタイム メッセージングやリモート コントロールなどの機能を実現できます。この記事では、PHP 開発で MQTT を使用するときに考慮する必要があるフォールト トレランスとセキュリティの問題を紹介し、参考用のコード例をいくつか示します。 1. 耐障害性

PHP と MQTT を使用して、リアルタイムのユーザー チャット機能を Web サイトに追加する方法 PHP と MQTT を使用して、リアルタイムのユーザー チャット機能を Web サイトに追加する方法 Jul 08, 2023 pm 07:46 PM

PHP と MQTT を使用して Web サイトにリアルタイムのユーザー チャット機能を追加する方法 今日のインターネット時代、Web サイト ユーザーはますますリアルタイムの通信とコミュニケーションを必要としています。この需要を満たすために、PHP と MQTT を使用してリアルタイムのユーザー チャット機能を追加できます。 - ウェブサイトへのユーザーチャット機能。この記事では、PHP と MQTT を使用して Web サイトのリアルタイム ユーザー チャット機能を実装する方法とコード例を紹介します。環境の準備ができていることを確認する 開始する前に、PHP および MQTT ランタイム環境がインストールおよび構成されていることを確認してください。 XAMPPなどの統合開発が利用可能

PHP MQTT クライアント開発ガイド PHP MQTT クライアント開発ガイド Mar 27, 2024 am 09:21 AM

MQTT (MessageQueuingTelemetryTransport) は、IoT デバイス間の通信に一般的に使用される軽量のメッセージ送信プロトコルです。 PHP は、MQTT クライアントの開発に使用できる、一般的に使用されるサーバー側プログラミング言語です。この記事では、PHP を使用して MQTT クライアントを開発する方法を紹介します。以下の内容が含まれます。 MQTT プロトコルの基本概念 PHPMQTT クライアント ライブラリの選択と使用例: PHPMQTT クライアントを使用した公開と使用

PHP と MQTT を使用したリアルタイム データ分析のベスト プラクティス PHP と MQTT を使用したリアルタイム データ分析のベスト プラクティス Jul 08, 2023 pm 05:57 PM

PHP と MQTT を使用したリアルタイム データ分析のベスト プラクティス IoT とビッグ データ テクノロジの急速な発展に伴い、リアルタイム データ分析はさまざまな業界でますます重要になっています。リアルタイムデータ分析では、軽量な通信プロトコルとして MQTT (MQTelemetryTransport) がモノのインターネットの分野で広く使用されています。 PHP と MQTT を組み合わせることで、リアルタイムのデータ分析を迅速かつ効率的に実現できます。この記事では、PHP と MQTT を使用したリアルタイム データ分析のベスト プラクティスを紹介します。

PHP と MQTT を使用してリアルタイム チャット アプリケーションを構築する PHP と MQTT を使用してリアルタイム チャット アプリケーションを構築する Jul 08, 2023 pm 03:18 PM

PHP と MQTT を使用したリアルタイム チャット アプリケーションの構築 はじめに: インターネットの急速な発展とスマート デバイスの普及により、リアルタイム コミュニケーションは現代社会において不可欠な機能の 1 つになりました。人々のコミュニケーションのニーズを満たすために、リアルタイム チャット アプリケーションの開発は多くの開発者によって追求される目標となっています。この記事では、PHP と MQTT (MessageQueuingTelemetryTransport) プロトコルを使用してリアルタイム チャット アプリケーションを構築する方法を紹介します。とは

MQTT プロトコルの PHP 実装ソリューションの比較と選択ガイド MQTT プロトコルの PHP 実装ソリューションの比較と選択ガイド Jul 08, 2023 pm 10:43 PM

MQTT プロトコルの PHP 実装比較および選択ガイド 概要: MQTT (MessageQueuingTelemetryTransport) は、モノのインターネットなどの低帯域幅、高遅延の環境に適した軽量のパブリッシュ/サブスクライブ通信プロトコルです。この記事では、PHP での MQTT プロトコルの実装を検討し、比較と選択のガイドを提供します。はじめに: モノのインターネットの急速な発展に伴い、リアルタイムのデータ送信と通信を必要とするデバイスがますます増えています。軽量としての MQTT

PHP はどのように Redis メッセージ サブスクリプションをリッスンし続け、非同期タスクを処理するのでしょうか? PHP はどのように Redis メッセージ サブスクリプションをリッスンし続け、非同期タスクを処理するのでしょうか? Sep 05, 2023 pm 03:28 PM

PHP はどのように Redis メッセージ サブスクリプションをリッスンし続け、非同期タスクを処理するのでしょうか? PHP 開発では、非同期タスクを処理するシナリオに直面することがよくあります。 Redis は、高性能のインメモリ データベースとして、メッセージのパブリッシュとサブスクライブに使用できる Pub/Sub メカニズムを提供します。この記事では、PHP を使用して Redis メッセージ サブスクリプションを継続的にリッスンする方法を紹介し、コード例を通じて非同期タスクを処理する方法を示します。 Redis の Pub/Sub メカニズムを理解する 始める前に、まず Redis の Pub/Sub メカニズムを理解する必要があります。

PHPとMQTTを使用したリモートデバイス制御のテクニカルガイド PHPとMQTTを使用したリモートデバイス制御のテクニカルガイド Jul 08, 2023 pm 05:09 PM

PHP および MQTT を使用したリモート デバイス制御のテクニカル ガイド はじめに: 最新テクノロジーの急速な発展により、モノのインターネット (IoT) が徐々に現実になってきました。モノのインターネットでは、さまざまな機器をインターネットを介して接続することで、機器の遠隔制御や監視を実現します。 MQTT は、デバイス間の通信を容易にする軽量のメッセージ転送プロトコルです。この記事では、PHP および MQTT プロトコルを使用してリモート デバイス制御を実現する方法を紹介します。 1. 準備: 開始する前に、MQTT サーバーと PH をインストールする必要があります

See all articles