What are the advantages and disadvantages of using server-side events (SSE) in PHP to display intermediate steps in a script execution process?

When executing a long-running script in PHP, it can be helpful to display intermediate steps or progress updates to the user. Server-Sent Events (SSE) provide a way to achieve this without the need for constant polling or manual refreshes. However, using SSE in PHP can lead to potential server resource issues if not managed properly.

<?php

// Set appropriate headers for SSE
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

// Simulate a long-running process
for ($i = 1; $i <= 10; $i++) {
    echo "data: Step $i completed\n\n";
    ob_flush();
    flush();
    sleep(1);
}

// End SSE connection
echo "data: Process completed\n\n";
ob_flush();
flush();

?>