misukisu commited on
Commit
77ef508
·
verified ·
1 Parent(s): 2d94abc

Update src/mcp.rs

Browse files
Files changed (1) hide show
  1. src/mcp.rs +8 -2
src/mcp.rs CHANGED
@@ -3,6 +3,7 @@ use crate::parser::{DocumentParser, ParsedDocument};
3
  use anyhow::Result;
4
  use axum::{
5
  extract::State,
 
6
  response::sse::{Event, KeepAlive, Sse},
7
  routing::{get, post},
8
  Json, Router,
@@ -344,7 +345,12 @@ async fn handle_http_rpc(
344
 
345
  async fn handle_sse(
346
  State(_server): State<Arc<McpServer>>,
347
- ) -> Sse<impl Stream<Item = Result<Event, Infallible>>> {
 
 
 
 
 
348
  let initial = tokio_stream::iter(vec![
349
  Ok(Event::default().event("endpoint").data("/rpc")),
350
  ]);
@@ -354,5 +360,5 @@ async fn handle_sse(
354
 
355
  let stream = initial.chain(interval);
356
 
357
- Sse::new(stream).keep_alive(KeepAlive::default())
358
  }
 
3
  use anyhow::Result;
4
  use axum::{
5
  extract::State,
6
+ http::{header, HeaderMap, HeaderValue},
7
  response::sse::{Event, KeepAlive, Sse},
8
  routing::{get, post},
9
  Json, Router,
 
345
 
346
  async fn handle_sse(
347
  State(_server): State<Arc<McpServer>>,
348
+ ) -> (HeaderMap, Sse<impl Stream<Item = Result<Event, Infallible>>>) {
349
+ let mut headers = HeaderMap::new();
350
+ headers.insert("x-accel-buffering", HeaderValue::from_static("no"));
351
+ headers.insert(header::CACHE_CONTROL, HeaderValue::from_static("no-cache"));
352
+ headers.insert(header::CONNECTION, HeaderValue::from_static("keep-alive"));
353
+
354
  let initial = tokio_stream::iter(vec![
355
  Ok(Event::default().event("endpoint").data("/rpc")),
356
  ]);
 
360
 
361
  let stream = initial.chain(interval);
362
 
363
+ (headers, Sse::new(stream).keep_alive(KeepAlive::default()))
364
  }