diff --git a/src/main.rs b/src/main.rs index cfe9a3c..62537fb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -115,8 +115,13 @@ async fn connect_handler( ServerError("Internal Server Error") })?; - let server_event_stream = - futures::stream::once(async move { Ok::<_, actix_web::Error>(Bytes::from(server_event)) }); + let server_event_stream = futures::stream::unfold(rx, |mut rx| async { + let result = rx.recv().await; + match result { + Ok(server_event) => Some((Ok::<_, actix_web::Error>(Bytes::from(server_event)), rx)), + Err(_) => None, + } + }); Ok(HttpResponse::Ok() .append_header(("content-type", "text/event-stream"))