feat(ws): 新增WebSocket实时通信支持与SSE独立服务
重构中间件结构,新增ws模块实现WebSocket流程执行实时推送 将SSE服务拆分为独立端口监听,默认8866 优化前端流式模式切换,支持WS/SSE协议选择 统一流式事件处理逻辑,完善错误处理与取消机制 更新Cargo.toml依赖,添加WebSocket相关库 调整代码组织结构,规范导入分组与注释
This commit is contained in:
@ -118,8 +118,18 @@ async fn main() -> anyhow::Result<()> {
|
||||
if let Some(f) = &env_file_used { tracing::info!("env file loaded: {}", f); } else { tracing::info!("env file loaded: <none>"); }
|
||||
tracing::info!("resolved APP_HOST={} APP_PORT={}", app_host, app_port);
|
||||
|
||||
let addr = format!("{}:{}", app_host, app_port);
|
||||
tracing::info!("listening on {}", addr);
|
||||
axum::serve(tokio::net::TcpListener::bind(addr).await?, app).await?;
|
||||
let http_addr = format!("{}:{}", app_host, app_port);
|
||||
tracing::info!("listening on {}", http_addr);
|
||||
|
||||
// HTTP 服务监听
|
||||
let http_listener = tokio::net::TcpListener::bind(http_addr.clone()).await?;
|
||||
let http_server = axum::serve(http_listener, app);
|
||||
|
||||
// WS 服务下沉到中间件
|
||||
let ws_server = middlewares::ws::serve(db.clone());
|
||||
|
||||
// 新增:SSE 服务独立端口监听(默认 8866,可配 SSE_HOST/SSE_PORT)
|
||||
let sse_server = middlewares::sse::serve(db.clone());
|
||||
tokio::try_join!(http_server, ws_server, sse_server)?;
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user