А что должно происходить? Вроде бы у Вас все логически верно. SSE слушает events.php, пока принудительно не закроется из JS либо PHP не пошлет header c
Content-Type !== 'text/event-stream' (т.е. можно просто
text/plain).
Либо можно передавать с сервера именное событие, например
event: closeconn
data: blablabla
а на стороне JS повесить слушателя:
eventSource.addEventListener('closeconn', function(e) {
eventSource.close();
alert('Соединение закрыто сервером');
});
Вот тут достаточно подробно расписано про SSE