HttpServer类型负责为HTTP请求提供服务。
HttpServer接受应用程序工厂作为参数,并且应用程序工厂必须具有Send+Sync约束。在“多线程”一节有更多信息。
要绑定到特定的套接字(socket)地址,必须使用bind()方法,并且可以多次调用它。
要绑定ssl套接字(socket),应使用bind_openssl()方法或者bind_rustls()方法。
要运行HTTP服务器,请使用HttpServer::run()方法。
useactix_web::{web,App,HttpResponse,HttpServer};#[actix_web::main]asyncfnmain()-std::io::Result(){HttpServer::new(
{App::new().route("/",web::get().to(
HttpResponse::Ok()))}).bind(".0.0.1:")?.run().await}
run()方法返回Server类型的实例,Server类型的方法可用于管理HTTP服务器:
pause()-暂停接受传入的连接
resume()-重新开始接受传入的连接
stop()-停止处理传入的连接,停止所有工作线程,并退出
下面的示例展示了如何在独立的线程中启动HTTP服务器。
useactix_web::{web,App,HttpResponse,HttpServer,rt::System};usestd::sync::mpsc;usestd::thread;#[actix_web::main]asyncfnmain(){let(tx,rx)=mpsc::channel();thread::spawn(move
{letsys=System::new("