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.
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.
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
方法来断开连接。
创建发布者和订阅者:
现在,我们可以创建一个发布者和一个订阅者来进行实际的通信。下面是一个简单的示例。
<?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
Kini kami boleh mencipta penerbit dan pelanggan untuk melakukan komunikasi sebenar. Di bawah adalah contoh mudah.
php publisher.php
publish
untuk menerbitkan mesej dengan topik "topik". Akhirnya, kami memutuskan sambungan. langgan
untuk melanggan mesej dengan topik "topik". Dengan memanggil kaedah gelung
, kami boleh terus menunggu dan menerima mesej daripada ejen. php subscriber.php
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!