PHP dan MQTT: Bina sistem analisis data masa nyata dipacu peristiwa
Dalam era digital hari ini, analisis data masa nyata telah menjadi kunci kepada pembuatan keputusan korporat dan pengoptimuman perniagaan. Untuk mencapai analisis data masa nyata yang cekap, sistem yang boleh dipercayai dan fleksibel diperlukan untuk mengumpul, memproses dan menyimpan data. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP dan MQTT (Message Qeuing Telemetry Transport) untuk membina sistem analisis data masa nyata dipacu peristiwa.
<?php require 'vendor/autoload.php'; use EclipseMosquittoClient as MosquittoClient; $client = new MosquittoClient(); $client->setCredentials('username', 'password'); // 如果需要认证,添加用户名和密码 $client->onConnect(function () use (&$client) { $client->publish('topic', 'Hello from PHP!', 0, false); $client->disconnect(); }); $client->onDisconnect(function () { echo "Disconnected from MQTT broker."; }); $client->connect('localhost', 1883, 60); $client->loopForever(); ?>
Kod di atas mula-mula melepasi memerlukan 'vendor/autoload.php';
Import pustaka klien Paho MQTT dan buat tika klien baharu. Gunakan kaedah setCredentials
untuk menetapkan maklumat pengesahan log masuk. Dalam panggilan balik acara onConnect
, anda boleh menggunakan kaedah publish
untuk menerbitkan mesej kepada topik yang ditentukan dan kemudian menutup sambungan. Akhir sekali, gunakan kaedah connect
untuk menyambung ke pelayan proksi MQTT dan kaedah loopForever
untuk memastikan sambungan hidup. require 'vendor/autoload.php';
引入Paho MQTT客户端库,然后创建一个新的客户端实例。使用setCredentials
方法可以设置登录认证信息。在onConnect
事件回调中,您可以使用publish
方法来发布一条消息到指定主题,然后关闭连接。最后,使用connect
方法连接到MQTT代理服务器,并使用loopForever
方法来保持连接活动。
要订阅主题,您可以使用以下代码:
<?php require 'vendor/autoload.php'; use EclipseMosquittoClient as MosquittoClient; $client = new MosquittoClient(); $client->setCredentials('username', 'password'); // 如果需要认证,添加用户名和密码 $client->onConnect(function () use (&$client) { $client->subscribe('topic', 0); }); $client->onMessage(function ($message) { echo "Received message: " . $message->payload . " "; }); $client->connect('localhost', 1883, 60); $client->loopForever(); ?>
上述代码与发布代码类似,首先引入所需的库,创建一个客户端实例,并设置认证信息。在onConnect
事件回调中,使用subscribe
方法来订阅指定主题。在onMessage
事件回调中,您可以处理接收到的消息。最后,同样使用connect
<?php $servername = 'localhost'; $username = 'username'; $password = 'password'; $dbname = 'database'; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // 准备SQL语句 $sql = "INSERT INTO data (timestamp, value) VALUES ('" . time() . "', '10.5')"; // 执行SQL语句 if ($conn->query($sql) === TRUE) { echo "Data inserted successfully."; } else { echo "Error: " . $sql . "<br>" . $conn->error; } // 关闭连接 $conn->close(); ?>
onConnect
, gunakan kaedah langgan
untuk melanggan topik yang ditentukan. Dalam panggilan balik acara onMessage
, anda boleh mengendalikan mesej yang diterima. Akhir sekali, gunakan juga kaedah connect
untuk menyambung ke pelayan proksi MQTT dan memastikan sambungan aktif. Di bahagian pelayan, anda boleh menggunakan PHP untuk menulis kod logik untuk pemprosesan dan penyimpanan data. Bergantung pada keperluan anda, anda boleh menyimpan data dalam MySQL atau pangkalan data lain dan mendapatkan serta menganalisis data dengan menulis pernyataan pertanyaan pangkalan data. Berikut ialah contoh penggunaan PHP untuk menyambung ke pangkalan data MySQL dan memasukkan data:
rrreee
Kod di atas mula-mula mencipta sambungan MySQL dan menyemak sama ada sambungan itu berjaya. Kemudian, sediakan pernyataan SQL yang mengandungi data yang akan dimasukkan, dan laksanakannya. Akhir sekali tutup sambungan.
Kesimpulan:
Dalam artikel ini, kami memperkenalkan cara membina sistem analisis data masa nyata dipacu peristiwa menggunakan PHP dan MQTT. Mula-mula, kami memasang dan mengkonfigurasi pelayan proksi MQTT, kemudian menggunakan PHP untuk menyambung ke pelayan proksi dan menerbitkan atau melanggan mesej pada topik tertentu. Akhir sekali, kami menulis kod logik pemprosesan dan penyimpanan data menggunakan PHP untuk menunjukkan cara menyimpan data dalam pangkalan data MySQL. Dengan menggunakan sistem sedemikian, perniagaan boleh memantau dan menganalisis data dalam masa nyata untuk membuat keputusan tepat pada masanya dan mengoptimumkan perniagaan mereka.Pelayan proksi MQTT Mosquitto: https://mosquitto.org/documentation/
🎜🎜Nota: di atas adalah untuk rujukan sahaja, sila konfigurasi dan ubah suai mengikut situasi sebenar. 🎜Atas ialah kandungan terperinci PHP dan MQTT: Membina sistem analisis data masa nyata dipacu peristiwa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!