Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP dan MQTT: Membina sistem pengesyoran masa nyata dipacu peristiwa

PHP dan MQTT: Membina sistem pengesyoran masa nyata dipacu peristiwa

WBOY
WBOYasal
2023-07-08 23:07:531278semak imbas

PHP dan MQTT: Membina sistem pengesyoran masa nyata dipacu peristiwa

Pengenalan:
Sistem pengesyoran masa nyata telah menjadi bahagian penting dalam aplikasi Internet moden. Melalui pengesyoran masa nyata, kami boleh menyediakan kandungan dan pengesyoran yang diperibadikan kepada pengguna tepat pada masanya berdasarkan gelagat dan pilihan sebenar mereka. Apabila melaksanakan sistem pengesyoran masa nyata, gabungan protokol PHP dan MQTT boleh memberikan penyelesaian yang lebih cekap dan berskala. Artikel ini akan memperkenalkan cara menggunakan PHP dan MQTT untuk membina sistem pengesyoran terdorong peristiwa masa nyata dan menyediakan contoh kod yang berkaitan untuk membantu pembaca bermula dengan cepat.

1. Apakah itu MQTT
MQTT (Message Qeuing Telemetry Transport) ialah protokol penerbitan/langganan acara ringan. Protokol ini direka bentuk untuk komunikasi antara penderia dan peranti lebar jalur rendah dan mempunyai ciri-ciri overhed rendah dan kecekapan penghantaran tinggi. Dalam sistem pengesyoran masa nyata, MQTT digunakan untuk menerbitkan dan melanggan mesej, dan untuk mengemas kini serta menolak data dalam masa nyata.

2. Reka bentuk seni bina sistem pengesyoran masa nyata
Komponen utama sistem pengesyoran masa nyata termasuk pengumpulan data, pemprosesan data dan perkhidmatan pengesyoran. Dalam PHP, kami boleh menggunakan pustaka sambungan MQTT untuk melaksanakan penerbitan dan langganan mesej untuk mencapai pengesyoran masa nyata terdorong peristiwa. Berikut ialah gambarajah skema reka bentuk seni bina sistem yang disyorkan:

+----------------------+
|   数据采集模块       |
+----------------------+
         |
         |
+----------------------+
|   数据处理模块       |
+----------------------+
         |
         |
+----------------------+
|   推荐服务模块       |
+----------------------+

3. Gunakan PHP untuk menghantar mesej MQTT
Pertama, kita perlu memasang perpustakaan sambungan MQTT, yang boleh dipasang melalui arahan berikut:

pecl install Mosquitto-alpha

Selepas pemasangan selesai, dalam kod PHP, gunakan contoh Kod berikut untuk menghantar mesej MQTT:

<?php
$mqtt = new MosquittoClient();
$mqtt->connect('localhost', 1883, 60); // 连接MQTT服务器

$topic = 'recommendation';
$message = 'Hello, World!';

$mqtt->publish($topic, $message, 1, false); // 发布消息

$mqtt->disconnect(); // 断开连接
?>

IV Gunakan PHP untuk menerima mesej MQTT
Seterusnya, kita perlu menggunakan PHP untuk menerima mesej MQTT kod untuk mencapai ini:

<?php
$mqtt = new MosquittoClient();
$mqtt->connect('localhost', 1883, 60); // 连接MQTT服务器

$topic = 'recommendation';

function onMessageReceived($message)
{
    echo "Received message: " . $message . "
";
}

$mqtt->onMessage(function ($message) {
    onMessageReceived($message->payload);
});

$mqtt->subscribe($topic, 0); // 订阅消息

while (!isDone()) {
    $mqtt->loop();
}

$mqtt->disconnect(); // 断开连接

function isDone()
{
    // 根据具体业务逻辑判断是否结束循环
    return false;
}
?>

Dalam kod contoh di atas, kami mentakrifkan Fungsi panggil balik onMessageReceived() 来处理接收到的消息。在订阅消息后,循环调用 $mqtt->loop() fungsi untuk menerima dan memproses mesej sehingga syarat untuk keluar dari gelung dipenuhi.

5. Contoh sistem pengesyoran masa nyata
Berikut ialah contoh sistem pengesyoran masa nyata yang mudah Contoh kod modul pengumpulan data, modul pemprosesan data dan modul perkhidmatan pengesyoran adalah seperti berikut:

// 数据采集模块
function collectData()
{
    // 采集用户行为数据,如点击、浏览等
    $data = [];

    return $data;
}

// 数据处理模块
function processData($data)
{
    // 处理数据,并按需求生成推荐结果
    $recommendations = [];

    return $recommendations;
}

// 推荐服务模块
function recommend($userId)
{
    $data = collectData();
    $recommendations = processData($data);

    // 将推荐结果发送给用户
    sendRecommendations($userId, $recommendations);
}

// 发送推荐消息
function sendRecommendations($userId, $recommendations)
{
    $mqtt = new MosquittoClient();
    $mqtt->connect('localhost', 1883, 60);

    $topic = 'recommendations/' . $userId;
    $message = json_encode($recommendations);

    $mqtt->publish($topic, $message, 1, false);

    $mqtt->disconnect();
}

// 示例:用户ID为1的用户获取推荐结果
recommend(1);

Melalui contoh di atas. kod, kita boleh melaksanakan berasaskan peristiwa Sistem pengesyoran masa nyata yang dipacu merealisasikan pengemaskinian masa nyata dan menolak data melalui protokol MQTT dan bahasa PHP.

Kesimpulan:
Artikel ini memperkenalkan cara menggunakan PHP dan MQTT untuk membina sistem pengesyoran masa nyata dipacu peristiwa dan menyediakan contoh kod yang berkaitan untuk membantu pembaca bermula dengan cepat. Saya harap artikel ini membantu anda semasa membina sistem pengesyoran masa nyata.

Atas ialah kandungan terperinci PHP dan MQTT: Membina sistem pengesyoran 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