Rumah  >  Artikel  >  rangka kerja php  >  Membina sistem pemantauan masa nyata berdasarkan Workerman

Membina sistem pemantauan masa nyata berdasarkan Workerman

王林
王林asal
2023-08-10 14:09:20736semak imbas

Membina sistem pemantauan masa nyata berdasarkan Workerman

Membina sistem pemantauan masa nyata berdasarkan Workerman

Dengan perkembangan berterusan Internet dan teknologi maklumat, sistem pemantauan masa nyata telah mendapat lebih banyak perhatian daripada semua lapisan masyarakat. Sistem pemantauan masa nyata boleh digunakan untuk memantau pelayan, peralatan rangkaian, data sensor, dll., mengesan masalah tepat pada masanya dan mengambil langkah yang sepadan. Dalam artikel ini, kami akan memperkenalkan cara membina sistem pemantauan masa nyata yang mudah menggunakan rangka kerja PHP Workerman.

Workerman ialah rangka kerja pelayan SOKET berprestasi tinggi yang dibangunkan semata-mata dalam PHP, yang boleh menolak data ke penyemak imbas dalam masa nyata melalui kod PHP. Ia ringan, berprestasi tinggi, dan mudah dikembangkan, dan sangat sesuai untuk pembangunan sistem pemantauan masa nyata.

Pertama, kita perlu memasang Workerman pada pelayan. Ia boleh dipasang melalui arahan berikut:

composer require workerman/workerman

Selepas pemasangan selesai, kami mula-mula mencipta pelayan fail pelayan pemantauan yang mudah.php, kodnya adalah seperti berikut:

<?php
require_once __DIR__.'/vendor/autoload.php';

use WorkermanWorker;

$monitor = new Worker('websocket://0.0.0.0:2345');
$monitor->count = 4;

$monitor->onWorkerStart = function($monitor) {
    echo "监控服务器启动
";
};

$monitor->onMessage = function($connection, $data) {
    global $monitor;
    // 处理从客户端接收到的数据
    // 这里可以进行数据处理和分析,并将结果推送给客户端
};

Worker::runAll();

Dalam kod di atas, kami mula-mula memperkenalkan rangka kerja Workerman dan buat objek pelayan pemantauan $ monitor. Alamat pendengaran ialah websocket://0.0.0.0:2345, yang bermaksud mendengar port 2345 semua alamat IP. Seterusnya, tetapkan atribut kiraan objek $monitor kepada 4, yang bermaksud memulakan 4 proses pelayan pemantauan. Akhir sekali, kami menetapkan fungsi panggil balik onWorkerStart dan fungsi panggil balik onMessage bagi objek $monitor untuk mengendalikan logik permulaan pelayan dan menerima mesej klien.

Seterusnya, kami menulis halaman hadapan mudah index.html untuk memaparkan data pemantauan. Kodnya adalah seperti berikut:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>实时监控</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <div id="monitor"></div>

    <script>
        var ws = new WebSocket("ws://your-server-ip:2345");

        ws.onopen = function(event) {
            console.log("连接成功");
        };

        ws.onmessage = function(event) {
            var data = JSON.parse(event.data);
            // 处理从服务器接收到的数据
            // 这里可以更新前端页面的内容,展示监控数据
        };

        ws.onclose = function(event) {
            console.log("连接关闭");
        };
    </script>
</body>
</html>

Dalam kod di atas, kami menggunakan teknologi WebSocket untuk berkomunikasi dengan pelayan dalam masa nyata. Mula-mula buat objek WebSocket ws dan nyatakan alamat pelayan dan nombor port. Seterusnya, kami menggunakan onopen, onmessage, onclose dan acara lain objek WebSocket untuk mengendalikan logik menyambung ke pelayan, menerima data pelayan dan menutup sambungan.

Akhir sekali, kita boleh menulis logik pemprosesan dan analisis data dalam fungsi panggil balik onMessage dalam fail server.php, dan menghantar data ke halaman hadapan dalam masa nyata melalui objek WebSocket. Berikut ialah contoh mudah:

$monitor->onMessage = function($connection, $data) {
    global $monitor;

    // 处理从客户端接收到的数据
    $result = // 处理和分析数据的逻辑

    // 将结果推送给客户端
    foreach($monitor->connections as $client) {
        $client->send(json_encode($result));
    }
};

Dalam kod di atas, kami mula-mula menggunakan $result pembolehubah untuk pemprosesan dan analisis data dan menyimpan hasilnya di dalamnya. Kemudian, ulangi semua sambungan pelanggan melalui gelung foreach dan gunakan kaedah hantar untuk menghantar keputusan kepada setiap pelanggan dalam bentuk rentetan JSON.

Melalui langkah di atas, kami telah berjaya membina sistem pemantauan masa nyata yang mudah menggunakan rangka kerja Workerman. Dengan memperkenalkan fail index.html ke halaman hadapan, komunikasi masa nyata dan paparan data dengan pelayan pemantauan boleh dicapai.

Sudah tentu, contoh di atas hanyalah demonstrasi mudah, dan sistem pemantauan masa nyata yang sebenar akan menjadi lebih kompleks dan lengkap. Anda boleh mengembangkan lagi dan menambah baik sistem ini mengikut keperluan anda sendiri, menambah lebih banyak penunjuk dan fungsi pemantauan. Saya harap artikel ini dapat membantu anda memahami penggunaan rangka kerja Workerman dan pembangunan sistem pemantauan masa nyata.

Atas ialah kandungan terperinci Membina sistem pemantauan masa nyata berdasarkan Workerman. 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