Rumah >pembangunan bahagian belakang >tutorial php >PHP dan MQTT: Membina sistem analisis data masa nyata dipacu peristiwa

PHP dan MQTT: Membina sistem analisis data masa nyata dipacu peristiwa

WBOY
WBOYasal
2023-07-07 21:37:351079semak imbas

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.

  1. Apakah itu MQTT
    MQTT ialah protokol pemesejan ringan berdasarkan model terbitan/langgan, yang sesuai untuk lebar jalur rendah dan persekitaran rangkaian yang tidak stabil. MQTT menggunakan protokol berorientasikan sambungan yang membenarkan mesej dihantar ke satu atau lebih topik, yang kemudiannya boleh diterima secara terpilih oleh pelanggan. Seni bina sedemikian menjadikan MQTT sangat sesuai untuk sistem analisis data masa nyata.
  2. Seni bina untuk membina sistem analisis data masa nyata
    Kami akan menggunakan komponen berikut untuk membina sistem analisis data masa nyata kami:
  3. Pelayan proksi MQTT: Pelayan proksi MQTT untuk menerima dan menghantar mesej, anda boleh menggunakan open perisian sumber Mosquitto.
  4. Sumber data: Ia boleh terdiri daripada pelbagai penderia, peranti atau alatan penjanaan data yang lain.
  5. Pemprosesan data: Aplikasi sisi pelayan yang bertanggungjawab untuk menerima dan memproses data, dilaksanakan menggunakan PHP.
  6. Storan data: Pangkalan data yang digunakan untuk menyimpan dan mendapatkan semula data Anda boleh memilih untuk menggunakan MySQL atau pangkalan data lain yang sesuai dengan anda.
  7. Pasang dan konfigurasikan pelayan proksi MQTT
    Pertama, anda perlu memasang pelayan proksi Mosquitto. Anda boleh memuat turunnya dari laman web rasmi Mosquitto dan ikut arahan untuk memasangnya. Selepas pemasangan selesai, anda perlu mengkonfigurasi tetapan sambungan pelayan proksi, seperti nombor port dan maklumat pengesahan.
  8. Terbitkan dan Langgan Topik
    Dalam PHP, anda boleh menggunakan pustaka klien Eclipse Paho MQTT untuk melaksanakan sambungan MQTT. Mula-mula, anda perlu menggunakan Komposer untuk memasang perpustakaan, kemudian anda boleh menggunakan kod berikut untuk menyambung dan menerbitkan mesej ke topik yang ditentukan:
<?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

Untuk melanggan topik, anda boleh menggunakan kod berikut:
    <?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();
    
    ?>
  1. Kod di atas adalah serupa dengan kod penerbitan Pertama, perkenalkan perpustakaan yang diperlukan, buat contoh klien dan tetapkan maklumat pengesahan. Dalam panggilan balik acara 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.
Pemprosesan dan penyimpanan data

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.
  • Rujukan:
  • Pustaka pelanggan MQTT Eclipse Paho: https://www.eclipse.org/paho/

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!

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