Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan Workerman untuk melaksanakan sistem visualisasi data masa nyata

Cara menggunakan Workerman untuk melaksanakan sistem visualisasi data masa nyata

WBOY
WBOYasal
2023-11-07 08:48:14639semak imbas

Cara menggunakan Workerman untuk melaksanakan sistem visualisasi data masa nyata

Workerman ialah rangka kerja soket PHP berprestasi tinggi yang dibangunkan berdasarkan PHP Ia digunakan untuk membangunkan aplikasi rangkaian dan mempunyai kelebihan kecekapan, kestabilan dan kebolehskalaan. Ciri terbesar ialah ia menyokong konkurensi tinggi dan boleh mengendalikan berjuta-juta sambungan TCP.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan Workerman untuk melaksanakan sistem visualisasi data masa nyata, termasuk cara menggunakan Workerman untuk membina pelayan WebSocket, cara menggunakan API WebSocket JavaScript untuk mendapatkan data masa nyata dan cara untuk gunakan perpustakaan alat D3.js untuk melukis carta visual.

  1. Memasang Workerman

Pemasangan Workerman adalah sangat mudah untuk menggunakan Composer. Lakukan operasi berikut dalam terminal:

composer require workerman/workerman
  1. Bina pelayan WebSocket

Langkah-langkah untuk membina pelayan WebSocket adalah seperti berikut:

  1. Buat pelayan fail pelayan WebSocket.php, kodnya adalah seperti berikut:
require_once __DIR__ . '/vendor/autoload.php';  

use WorkermanWorker;
use WorkermanLibTimer;
use WorkermanConnectionTcpConnection;

$ws_worker = new Worker("websocket://0.0.0.0:2346");

$ws_worker->onConnect = function (TcpConnection $connection) {
    echo "client connected
";
};

$ws_worker->onMessage = function (TcpConnection $connection, $data) {
    $connection->send(json_encode(array(
        'value' => rand(1, 100)
    )));
};

$ws_worker->onClose = function (TcpConnection $connection) {
    echo "client closed
";
};

$ws_worker->onWorkerStart = function (Worker $ws_worker) {
    // 每隔1秒钟向所有客户端推送一次随机数据
    Timer::add(1, function () use ($ws_worker) {
        foreach ($ws_worker->connections as $connection) {
            $connection->send(json_encode(array(
                'value' => rand(1, 100)
            )));
        }
    });
};

Worker::runAll();

Kod ini melaksanakan fungsi berikut:

  • Buat pelayan WebSocket
  • Mendengar acara sambungan pelanggan
  • Mendengar acara menghantar mesej pelanggan
  • Mendengarkan acara sambungan pelanggan; , tolak data rawak kepada semua pelanggan dengan kerap.
Jalankan pelayan WebSocket di terminal:
  1. php server.php start
Gunakan JavaScript untuk mendapatkan data masa nyata
  1. Kod untuk menggunakan API WebSocket JavaScript untuk mendapatkan data masa nyata dalam penyemak imbas adalah seperti berikut:
rrree

Kod terutamanya melaksanakan fungsi berikut:

Buat sambungan WebSocket
  • Apabila menerima data daripada pelayan, huraikan data dan keluarkannya pada konsol.
Gunakan D3.js untuk melukis carta visual
  1. Kod untuk menggunakan D3.js untuk melukis carta visual dalam penyemak imbas adalah seperti berikut:
var ws = new WebSocket('ws://localhost:2346');  

ws.onmessage = function (event) {  
    var data = JSON.parse(event.data);  
    console.log(data.value);  
}

Kod ini terutamanya melaksanakan fungsi berikut:

Cre

;
  • Tentukan skala;
  • Tentukan penjana laluan;
  • Tambahkan elemen laluan;
  • Pada ketika ini, kami telah melengkapkan semua kod untuk melaksanakan sistem visualisasi data masa nyata menggunakan Workerman, JavaScript dan D3.js. Buka fail HTML dalam penyemak imbas anda dan anda boleh melihat carta garis yang sentiasa dikemas kini yang mewakili nombor rawak yang ditolak secara berterusan.

Atas ialah kandungan terperinci Cara menggunakan Workerman untuk melaksanakan sistem visualisasi data masa nyata. 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