1use flyer::router::next::Next;
2use flyer::{server};
3use flyer::{request::Request, response::Response};
4use serde::{Deserialize, Serialize};
5
6#[derive(Serialize, Deserialize)]
7pub struct Message<'a> {
8 message: &'a str
9}
10
11pub async fn auth<'a>(req: &'a mut Request, res: &'a mut Response, next: &'a mut Next) -> &'a mut Response {
12 if req.header("authorization") != "jwt.token" {
13 return res;
14 }
15
16 return next.handle(res);
17}
18
19fn main() {
20 let server = server("127.0.0.1", 9999);
21
22 server.router().group("", |router| {
23 router.ws("/", async |_req, ws| {
24 ws.on(async |event, writer| {
25 match event {
26 flyer::ws::Event::Ready() => todo!(),
27 flyer::ws::Event::Text(_items) => writer.write("Hello This Public Route".into()),
28 flyer::ws::Event::Binary(_items) => todo!(),
29 flyer::ws::Event::Ping(_items) => todo!(),
30 flyer::ws::Event::Pong(_items) => todo!(),
31 flyer::ws::Event::Close(_reason) => todo!(),
32 }
33 });
34 });
35
36 router.ws("private", async |_req, ws| {
37 ws.on(async |event, writer| {
38 match event {
39 flyer::ws::Event::Ready() => todo!(),
40 flyer::ws::Event::Text(_items) => writer.write("Hello This Private Route".into()),
41 flyer::ws::Event::Binary(_items) => todo!(),
42 flyer::ws::Event::Ping(_items) => todo!(),
43 flyer::ws::Event::Pong(_items) => todo!(),
44 flyer::ws::Event::Close(_reason) => todo!(),
45 }
46 });
47 }).middleware(auth);
48 });
49
50 print!("\r\n\r\nRunning server: {}\r\n\r\n", server.address());
51
52 server.listen();
53}