Professional Documents
Culture Documents
{
$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();
}
$response->headers->set('Content-Type', 'text/event-stream');
$response->headers->set('Cache-Control', 'no-cache');
$response->headers->set('Connection', 'keep-alive');
return $response;
}
$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');