aeonshift commited on
Commit
24483a3
·
verified ·
1 Parent(s): e47e562

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +7 -5
server.py CHANGED
@@ -52,7 +52,7 @@ async def handle_sse(request: Request):
52
  placeholder_id = f"placeholder_{id(write_stream)}"
53
  if placeholder_id in write_streams:
54
  write_streams[session_id] = write_streams.pop(placeholder_id)
55
- sse_writers[session_id] = sse_stream_writer
56
  logger.info(f"Updated placeholder {placeholder_id} to session_id {session_id}")
57
  await sse_stream_writer.send({"event": event, "data": data})
58
 
@@ -61,6 +61,7 @@ async def handle_sse(request: Request):
61
  write_stream_reader = write_stream
62
  placeholder_id = f"placeholder_{id(write_stream)}"
63
  write_streams[placeholder_id] = write_stream
 
64
  logger.info("Starting MCP server with streams")
65
  await server.run(read_stream, write_stream, server.create_initialization_options())
66
  logger.info("MCP server running")
@@ -77,16 +78,17 @@ async def handle_post(request: Request):
77
  session_id = request.query_params.get("session_id")
78
  logger.info(f"Received POST with session_id: {session_id}, message: {message}")
79
 
80
- # Try to find the write_stream, including checking for placeholder IDs
81
  write_stream = write_streams.get(session_id)
82
  sse_writer = sse_writers.get(session_id)
83
- if not write_stream:
84
  for sid, ws in list(write_streams.items()):
85
  if sid.startswith("placeholder_"):
86
  write_streams[session_id] = ws
 
87
  write_streams.pop(sid)
88
- write_stream = ws
89
- sse_writers[session_id] = sse_writers.get(sid)
90
  logger.info(f"Associated placeholder {sid} with session_id {session_id}")
91
  break
92
 
 
52
  placeholder_id = f"placeholder_{id(write_stream)}"
53
  if placeholder_id in write_streams:
54
  write_streams[session_id] = write_streams.pop(placeholder_id)
55
+ sse_writers[session_id] = sse_writers.pop(placeholder_id)
56
  logger.info(f"Updated placeholder {placeholder_id} to session_id {session_id}")
57
  await sse_stream_writer.send({"event": event, "data": data})
58
 
 
61
  write_stream_reader = write_stream
62
  placeholder_id = f"placeholder_{id(write_stream)}"
63
  write_streams[placeholder_id] = write_stream
64
+ sse_writers[placeholder_id] = sse_stream_writer # Store the SSE writer with placeholder ID
65
  logger.info("Starting MCP server with streams")
66
  await server.run(read_stream, write_stream, server.create_initialization_options())
67
  logger.info("MCP server running")
 
78
  session_id = request.query_params.get("session_id")
79
  logger.info(f"Received POST with session_id: {session_id}, message: {message}")
80
 
81
+ # Try to find the write_stream and SSE writer, including checking for placeholder IDs
82
  write_stream = write_streams.get(session_id)
83
  sse_writer = sse_writers.get(session_id)
84
+ if not write_stream or not sse_writer:
85
  for sid, ws in list(write_streams.items()):
86
  if sid.startswith("placeholder_"):
87
  write_streams[session_id] = ws
88
+ sse_writers[session_id] = sse_writers.pop(sid, None)
89
  write_streams.pop(sid)
90
+ write_stream = write_streams[session_id]
91
+ sse_writer = sse_writers[session_id]
92
  logger.info(f"Associated placeholder {sid} with session_id {session_id}")
93
  break
94