You are on page 1of 1

public function sseSwapMonitoring(Request $request)

{
$response = new \Symfony\Component\HttpFoundation\StreamedResponse(function
() use ($request) {
while (true) {
$memoryData = $this->fetchNewSwapMonitoringData();

if ($memoryData) {
// Kirim data ke klien
echo 'data: ' . json_encode($memoryData) . "\n\n";
ob_flush();
flush();
}

sleep(5); // Tunggu 5 detik sebelum mengambil data lagi


}
});

$response->headers->set('Content-Type', 'text/event-stream');
$response->headers->set('Cache-Control', 'no-cache');
$response->headers->set('Connection', 'keep-alive');

return $response;
}

private function fetchNewSwapMonitoringData()


{
// Gantilah ini dengan logika sesuai dengan cara Anda mendapatkan data CPU
yang baru dari database
$server = '1';
$name = 'Swap:';

$data = DB::connection('pgsql4')
->table('memory')
->where('name', $name)
->where('server_id', $server)
->orderBy('id', 'desc')
->first();

if ($data) {
return [
'id' => $data->id,
'name' => $data->name,
'total' => $data->total,
'used' => $data->used,
'free' => $data->free,
'server_id' => $data->server_id,
'created_at' => $data->created_at,
];
} else {
return null;
}
}

route
Route::get('/sse-swap-monitoring', [DashboardController::class,
'sseSwapMonitoring'])->name('sse-memory-monitoring');

You might also like