feat(extension): extract http request part into rmcp extension (#163)
* feat(extension): extract http request part into rmcp extension * perf(extension): insert extension from one entrypoint
This commit is contained in:
parent
546490a95e
commit
787cc015b7
1 changed files with 67 additions and 8 deletions
|
|
@ -3,7 +3,7 @@ use std::{collections::HashMap, io, net::SocketAddr, sync::Arc, time::Duration};
|
|||
use axum::{
|
||||
Json, Router,
|
||||
extract::{Query, State},
|
||||
http::StatusCode,
|
||||
http::{StatusCode, request::Parts},
|
||||
response::{
|
||||
Response,
|
||||
sse::{Event, KeepAlive, Sse},
|
||||
|
|
@ -64,7 +64,8 @@ pub struct PostEventQuery {
|
|||
async fn post_event_handler(
|
||||
State(app): State<App>,
|
||||
Query(PostEventQuery { session_id }): Query<PostEventQuery>,
|
||||
Json(message): Json<ClientJsonRpcMessage>,
|
||||
parts: Parts,
|
||||
Json(mut message): Json<ClientJsonRpcMessage>,
|
||||
) -> Result<StatusCode, StatusCode> {
|
||||
tracing::debug!(session_id, ?message, "new client message");
|
||||
let tx = {
|
||||
|
|
@ -73,6 +74,7 @@ async fn post_event_handler(
|
|||
.ok_or(StatusCode::NOT_FOUND)?
|
||||
.clone()
|
||||
};
|
||||
message.insert_extension(parts);
|
||||
if tx.send(message).await.is_err() {
|
||||
tracing::error!("send message error");
|
||||
return Err(StatusCode::GONE);
|
||||
|
|
|
|||
Loading…
Reference in a new issue