diff --git a/.travis.yml b/.travis.yml index 33fe904d..ddaaae14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -65,6 +65,7 @@ script: cd examples/tls && cargo check && cd ../.. cd examples/websocket-chat && cargo check && cd ../.. cd examples/websocket && cargo check && cd ../.. + cd examples/unix-socket && cargo check && cd ../.. fi - | if [[ "$TRAVIS_RUST_VERSION" == "nightly" && $CLIPPY ]]; then diff --git a/Cargo.toml b/Cargo.toml index eeca5936..9387ad6f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -114,5 +114,6 @@ members = [ "examples/websocket", "examples/websocket-chat", "examples/web-cors/backend", + "examples/unix-socket", "tools/wsload/", ] diff --git a/examples/unix-socket/Cargo.toml b/examples/unix-socket/Cargo.toml new file mode 100644 index 00000000..a7c31f21 --- /dev/null +++ b/examples/unix-socket/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "unix-socket" +version = "0.1.0" +authors = ["Messense Lv "] + +[dependencies] +env_logger = "0.5" +actix = "0.5" +actix-web = { path = "../../" } +tokio-uds = "0.1" diff --git a/examples/unix-socket/src/main.rs b/examples/unix-socket/src/main.rs new file mode 100644 index 00000000..a56d428a --- /dev/null +++ b/examples/unix-socket/src/main.rs @@ -0,0 +1,31 @@ +extern crate actix; +extern crate actix_web; +extern crate env_logger; +extern crate tokio_uds; + +use actix::*; +use actix_web::*; +use tokio_uds::UnixListener; + + +fn index(_req: HttpRequest) -> &'static str { + "Hello world!" +} + +fn main() { + ::std::env::set_var("RUST_LOG", "actix_web=info"); + let _ = env_logger::init(); + let sys = actix::System::new("unix-socket"); + + let listener = UnixListener::bind("/tmp/actix-uds.socket", Arbiter::handle()).expect("bind failed"); + let _addr = HttpServer::new( + || Application::new() + // enable logger + .middleware(middleware::Logger::default()) + .resource("/index.html", |r| r.f(|_| "Hello world!")) + .resource("/", |r| r.f(index))) + .start_incoming(listener.incoming(), false); + + println!("Started http server: /tmp/actix-uds.socket"); + let _ = sys.run(); +}