Rumah >pembangunan bahagian belakang >tutorial php >PHP dan MQTT: Membina aplikasi berdasarkan corak publish-subscribe

PHP dan MQTT: Membina aplikasi berdasarkan corak publish-subscribe

PHPz
PHPzasal
2023-07-09 12:31:391016semak imbas

PHP dan MQTT: Membina aplikasi berdasarkan model publish-subscribe

Pengenalan:
Dengan perkembangan pesat Internet of Things, semakin banyak peranti perlu berkomunikasi antara satu sama lain dalam masa nyata. MQTT (Pengangkutan Telemetri Beratur Mesej) ialah protokol penghantaran mesej ringan yang boleh mencapai komunikasi yang cekap dalam persekitaran rangkaian jalur lebar rendah dan tidak stabil. Digabungkan dengan bahasa PHP, kami boleh menggunakan MQTT untuk membina aplikasi berdasarkan model publish-subscribe. Artikel ini akan memperkenalkan cara membuat penerbit dan pelanggan mudah menggunakan PHP dan MQTT.

  1. Persediaan Alam Sekitar:
    Sebelum kita mula, kita perlu memastikan bahawa kita telah memasang sambungan PHP dan MQTT. Ia boleh dipasang melalui arahan berikut:

    composer require eclampsia89/php-mqtt

    Sambungan ini menyediakan fungsi untuk berkomunikasi dengan broker MQTT.

  2. Membina Klien MQTT:
    Kami perlu mencipta klien MQTT terlebih dahulu untuk berhubung dan berkomunikasi. Di bawah ialah kelas MQTT yang mudah.

    <?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();
     }
    }

    Dalam kelas ini, kami menggunakan eclampsia89MQTTProtocol untuk menyambung kepada broker dan menggunakan kaedah connect untuk menyambung. Kami boleh menggunakan kaedah subscribe untuk melanggan topik dan kaedah publish untuk menerbitkan mesej. Akhir sekali, kami menggunakan kaedah disconnect untuk memutuskan sambungan. 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. Mencipta Penerbit dan Pelanggan:

    Kini kami boleh mencipta penerbit dan pelanggan untuk melakukan komunikasi sebenar. Di bawah adalah contoh mudah.

    php publisher.php

    Dalam contoh ini, kami mencipta penerbit bernama "penerbit" dan menyambung kepada broker MQTT. Kemudian, kami menggunakan kaedah publish untuk menerbitkan mesej dengan topik "topik". Akhirnya, kami memutuskan sambungan.

Seterusnya, kami mencipta pelanggan bernama "pelanggan" dan menyambung kepada broker MQTT. Kemudian, kami menggunakan kaedah langgan untuk melanggan mesej dengan topik "topik". Dengan memanggil kaedah gelung, kami boleh terus menunggu dan menerima mesej daripada ejen.


🎜Jalankan contoh: 🎜Kini, kami boleh menjalankan contoh ini untuk menguji sama ada penerbit dan pelanggan kami berfungsi dengan betul. Perintah berikut boleh dilaksanakan dalam baris arahan: 🎜
php subscriber.php
rrreee🎜Dengan melihat output pelanggan, kita dapat melihat bahawa ia menerima mesej daripada penerbit. 🎜🎜🎜🎜Kesimpulan: 🎜Dengan menggunakan PHP dan MQTT, kami boleh membina aplikasi dengan mudah berdasarkan corak publish-subscribe. Dalam artikel ini, kami menunjukkan kepada anda cara menggunakan PHP dan sambungan MQTT untuk mencipta penerbit dan pelanggan mudah untuk komunikasi masa nyata. Saya harap artikel ini akan membantu anda memahami dan menggunakan PHP dan MQTT. 🎜

Atas ialah kandungan terperinci PHP dan MQTT: Membina aplikasi berdasarkan corak publish-subscribe. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn