Em seu código, você está chamando
response.end()
, que desconectará o fluxo de eventos. Normalmente, você deseja manter o fluxo de eventos aberto indefinidamente, a menos que tenha um motivo para fechá-lo. O cliente se desconectará se a guia do navegador for fechada, a conexão for perdida, etc.
Além disso, você pode considerar usar um módulo existente como express-sse:https://www.npmjs .com/package/express-sse Isso pode economizar algum tempo na implementação do protocolo.