Skip to content

Commit

Permalink
fix mcp ws
Browse files Browse the repository at this point in the history
  • Loading branch information
Larkooo committed Mar 4, 2025
1 parent 4f427cf commit a57aed9
Showing 1 changed file with 25 additions and 25 deletions.
50 changes: 25 additions & 25 deletions crates/torii/server/src/handlers/mcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -664,38 +664,38 @@ impl Handler for McpHandler {
return self.handle_message_request(req).await;
}

// Handle WebSocket upgrade requests

Check warning on line 667 in crates/torii/server/src/handlers/mcp.rs

View check run for this annotation

Codecov / codecov/patch

crates/torii/server/src/handlers/mcp.rs#L659-L667

Added lines #L659 - L667 were not covered by tests
if hyper_tungstenite::is_upgrade_request(&req) {
let (response, websocket) = match hyper_tungstenite::upgrade(req, None) {
Ok(upgrade) => upgrade,

Check warning on line 670 in crates/torii/server/src/handlers/mcp.rs

View check run for this annotation

Codecov / codecov/patch

crates/torii/server/src/handlers/mcp.rs#L669-L670

Added lines #L669 - L670 were not covered by tests
Err(_) => {
return Response::builder()
.status(StatusCode::BAD_REQUEST)
.body(Body::from("Failed to upgrade WebSocket connection"))
.unwrap();

Check warning on line 675 in crates/torii/server/src/handlers/mcp.rs

View check run for this annotation

Codecov / codecov/patch

crates/torii/server/src/handlers/mcp.rs#L672-L675

Added lines #L672 - L675 were not covered by tests
}
};

let this = self.clone();
tokio::spawn(async move {
if let Ok(ws_stream) = websocket.await {
this.handle_websocket_connection(ws_stream).await;
}
});

return response;
}

match req.method() {

Check warning on line 689 in crates/torii/server/src/handlers/mcp.rs

View check run for this annotation

Codecov / codecov/patch

crates/torii/server/src/handlers/mcp.rs#L686-L689

Added lines #L686 - L689 were not covered by tests
// Handle GET requests for SSE connection
&hyper::Method::GET => {
return self.handle_sse_connection().await;

Check warning on line 692 in crates/torii/server/src/handlers/mcp.rs

View check run for this annotation

Codecov / codecov/patch

crates/torii/server/src/handlers/mcp.rs#L692

Added line #L692 was not covered by tests
}
// Handle WebSocket upgrade requests
_ if hyper_tungstenite::is_upgrade_request(&req) => {
let (response, websocket) = match hyper_tungstenite::upgrade(req, None) {
Ok(upgrade) => upgrade,
Err(_) => {
return Response::builder()
.status(StatusCode::BAD_REQUEST)
.header("Access-Control-Allow-Origin", "*")
.body(Body::from("Failed to upgrade WebSocket connection"))
.unwrap();
}
};

let this = self.clone();
tokio::spawn(async move {
if let Ok(ws_stream) = websocket.await {
this.handle_websocket_connection(ws_stream).await;
}
});

response
}
// Return Method Not Allowed for other methods
_ => Response::builder()
.status(StatusCode::METHOD_NOT_ALLOWED)
.header("Access-Control-Allow-Origin", "*")
.body(Body::from("Method not allowed"))
.body(Body::from(
serde_json::to_string(&JsonRpcResponse::method_not_found(Value::Null)).unwrap(),
))
.unwrap(),

Check warning on line 699 in crates/torii/server/src/handlers/mcp.rs

View check run for this annotation

Codecov / codecov/patch

crates/torii/server/src/handlers/mcp.rs#L695-L699

Added lines #L695 - L699 were not covered by tests
}
}
Expand Down

0 comments on commit a57aed9

Please sign in to comment.