Spaces:
Build error
Build error
Update src/sse/stream.rs
Browse files- src/sse/stream.rs +8 -8
src/sse/stream.rs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
| 1 |
-
use axum::
|
| 2 |
use futures_util::stream::Stream;
|
| 3 |
-
use std::
|
| 4 |
-
use tokio_stream::
|
| 5 |
-
use
|
| 6 |
|
| 7 |
pub async fn sse_handler(
|
| 8 |
-
|
| 9 |
) -> Sse<impl Stream<Item = Result<Event, Infallible>>> {
|
| 10 |
-
let
|
| 11 |
-
let stream = BroadcastStream::new(rx).map(|msg| {
|
| 12 |
match msg {
|
| 13 |
Ok(data) => Ok(Event::default().data(data)),
|
| 14 |
-
Err(_) => Ok(Event::default().data("
|
| 15 |
}
|
| 16 |
});
|
|
|
|
| 17 |
Sse::new(stream)
|
| 18 |
}
|
|
|
|
| 1 |
+
use axum::response::sse::{Event, Sse};
|
| 2 |
use futures_util::stream::Stream;
|
| 3 |
+
use std::convert::Infallible;
|
| 4 |
+
use tokio_stream::StreamExt;
|
| 5 |
+
use tokio::sync::broadcast;
|
| 6 |
|
| 7 |
pub async fn sse_handler(
|
| 8 |
+
rx: broadcast::Receiver<String>,
|
| 9 |
) -> Sse<impl Stream<Item = Result<Event, Infallible>>> {
|
| 10 |
+
let stream = tokio_stream::wrappers::BroadcastStream::new(rx).map(|msg| {
|
|
|
|
| 11 |
match msg {
|
| 12 |
Ok(data) => Ok(Event::default().data(data)),
|
| 13 |
+
Err(_) => Ok(Event::default().data("ping")),
|
| 14 |
}
|
| 15 |
});
|
| 16 |
+
|
| 17 |
Sse::new(stream)
|
| 18 |
}
|