1
0
mirror of https://github.com/actix/examples synced 2025-02-02 17:39:05 +01:00

38 lines
862 B
Rust
Raw Normal View History

2020-04-09 01:54:28 +01:00
use log::info;
2019-07-11 15:02:25 +06:00
use actix_files::Files;
use actix_web::{web, App, Error, HttpRequest, HttpResponse, HttpServer};
use actix_web_actors::ws;
2020-04-09 01:54:28 +01:00
mod message;
mod server;
2020-04-09 01:54:28 +01:00
mod session;
2020-04-09 01:54:28 +01:00
use session::WsChatSession;
2020-04-09 01:54:28 +01:00
async fn chat_route(
req: HttpRequest,
stream: web::Payload,
) -> Result<HttpResponse, Error> {
ws::start(WsChatSession::default(), &req, stream)
}
#[actix_web::main]
2020-04-09 01:54:28 +01:00
async fn main() -> std::io::Result<()> {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
.init();
2022-02-17 20:22:36 +00:00
let addr = ("127.0.0.1", 8080);
2020-04-09 01:54:28 +01:00
let srv = HttpServer::new(move || {
App::new()
2019-07-11 15:02:25 +06:00
.service(web::resource("/ws/").to(chat_route))
.service(Files::new("/", "./static/").index_file("index.html"))
2019-03-09 18:03:09 -08:00
})
2020-04-09 01:54:28 +01:00
.bind(&addr)?;
info!("Starting http server: {}", &addr);
2020-04-09 01:54:28 +01:00
srv.run().await
}