WebSocket 是啥
WebSocket 是一种网络传输协议,可在单个 TCP 连接上进行全双工通信,位于 OSI 模型的应用层。具体可以参考 维基百科
JavaScript 的 WebSocket 使用可以参考 MDN 文档
使用
#![allow(unused)] fn main() { use juri::{get, Request, Response, web_socket::{Message, RequestExt, WSResponse}}; #[get("/ws", ws)] pub fn handle_ws(&request: Request) -> juri::Result<WSResponse> { /// 升级为 ws, 成功时返回 WSResponse let mut ws = request.upgrader().unwrap(); // 传入 ws 处理逻辑 ws.on(|mut stream| async move { loop { let message = stream.read().await.unwrap(); match message { Message::Text(text) => { stream.send(WSMessage::Text("hi".to_string())).await.unwrap(); }, Message::Binary(_) => todo!(), Message::Ping(_) => todo!(), Message::Pong(_) => todo!(), Message::Close => { return; } } } }); /// 返回 WSResponse Ok(ws) /// 也可以自定义返回 // Ok(WSResponse::new(Response::html(""))) } }