mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2026-01-08 16:34:19 +01:00
Add message queue for SSE messages POST endpoint (#459)
This commit is contained in:
@@ -98,7 +98,9 @@ async def sse_client(
|
||||
await read_stream_writer.send(exc)
|
||||
continue
|
||||
|
||||
session_message = SessionMessage(message)
|
||||
session_message = SessionMessage(
|
||||
message=message
|
||||
)
|
||||
await read_stream_writer.send(session_message)
|
||||
case _:
|
||||
logger.warning(
|
||||
@@ -148,3 +150,5 @@ async def sse_client(
|
||||
finally:
|
||||
await read_stream_writer.aclose()
|
||||
await write_stream.aclose()
|
||||
await read_stream.aclose()
|
||||
await write_stream_reader.aclose()
|
||||
|
||||
@@ -144,7 +144,7 @@ async def stdio_client(server: StdioServerParameters, errlog: TextIO = sys.stder
|
||||
await read_stream_writer.send(exc)
|
||||
continue
|
||||
|
||||
session_message = SessionMessage(message)
|
||||
session_message = SessionMessage(message=message)
|
||||
await read_stream_writer.send(session_message)
|
||||
except anyio.ClosedResourceError:
|
||||
await anyio.lowlevel.checkpoint()
|
||||
|
||||
@@ -153,7 +153,7 @@ class StreamableHTTPTransport:
|
||||
):
|
||||
message.root.id = original_request_id
|
||||
|
||||
session_message = SessionMessage(message)
|
||||
session_message = SessionMessage(message=message)
|
||||
await read_stream_writer.send(session_message)
|
||||
|
||||
# Call resumption token callback if we have an ID
|
||||
@@ -286,7 +286,7 @@ class StreamableHTTPTransport:
|
||||
try:
|
||||
content = await response.aread()
|
||||
message = JSONRPCMessage.model_validate_json(content)
|
||||
session_message = SessionMessage(message)
|
||||
session_message = SessionMessage(message=message)
|
||||
await read_stream_writer.send(session_message)
|
||||
except Exception as exc:
|
||||
logger.error(f"Error parsing JSON response: {exc}")
|
||||
@@ -333,7 +333,7 @@ class StreamableHTTPTransport:
|
||||
id=request_id,
|
||||
error=ErrorData(code=32600, message="Session terminated"),
|
||||
)
|
||||
session_message = SessionMessage(JSONRPCMessage(jsonrpc_error))
|
||||
session_message = SessionMessage(message=JSONRPCMessage(jsonrpc_error))
|
||||
await read_stream_writer.send(session_message)
|
||||
|
||||
async def post_writer(
|
||||
|
||||
@@ -60,7 +60,7 @@ async def websocket_client(
|
||||
async for raw_text in ws:
|
||||
try:
|
||||
message = types.JSONRPCMessage.model_validate_json(raw_text)
|
||||
session_message = SessionMessage(message)
|
||||
session_message = SessionMessage(message=message)
|
||||
await read_stream_writer.send(session_message)
|
||||
except ValidationError as exc:
|
||||
# If JSON parse or model validation fails, send the exception
|
||||
|
||||
Reference in New Issue
Block a user