#javascript #node.js #http #eventemitter #event-stream
Вопрос:
Я интегрировал функцию отправки событий сервером в одно из приложений узла и использую ее для потоковой передачи событий, связанных с предоставлением учетной записи. Поэтому каждый пользователь отправляет разные запросы, и я хочу отправить пользователю только соответствующую информацию о событии. Я интегрировал SSE в приложение узла с помощью EventEmitter, и код выглядит следующим образом:
export const trialEvents = (req, res) => {
//setting response header for event stream
res.writeHead(200, {
"Connection": "keep-alive",
"Content-Type": "text/event-stream",
"Cache-Control": "no-cache",
"X-Accel-Buffering":"no",
"Access-Control-Allow-Origin":"*"
});
// event listener for writing to stream
eventEmitter.on('accountProvision', function (data) {
res.write("data: " JSON.stringify(data) "nn");
});
}
Теперь из другой части контроллера, которая занимается деятельностью по предоставлению учетных записей, я запускаю событие, используя следующий код:
eventEmitter.emit(
'accountProvision',{
"status":"error",
"message":e
}
);
Теперь events
маршрутизатор указывает на trialEvents
метод, и клиент может успешно видеть события с сервера по мере их возникновения. Я хотел бы очистить поток событий, так как он будет транслировать соответствующие события только тогда, когда другой пользователь установит соединение с events
конечной точкой, поэтому он будет получать только события, связанные с предоставлением их учетной записи.
Как мы можем это сделать ?