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> {
let mut ws = request.upgrader().unwrap();
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;
}
}
}
});
Ok(ws)
}
}