mirror of https://github.com/fafhrd91/actix-web
				
				
				
			
						commit
						3bc60a8d5d
					
				|  | @ -8,7 +8,7 @@ use diesel::prelude::*; | ||||||
| use models; | use models; | ||||||
| use schema; | use schema; | ||||||
| 
 | 
 | ||||||
| /// This is db executor actor. We are going to run 3 of them in parallele.
 | /// This is db executor actor. We are going to run 3 of them in parallel.
 | ||||||
| pub struct DbExecutor(pub SqliteConnection); | pub struct DbExecutor(pub SqliteConnection); | ||||||
| 
 | 
 | ||||||
| /// This is only message that this actor can handle, but it is easy to extend number of
 | /// This is only message that this actor can handle, but it is easy to extend number of
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| #![cfg_attr(feature="cargo-clippy", allow(needless_pass_by_value))] | #![cfg_attr(feature="cargo-clippy", allow(needless_pass_by_value))] | ||||||
| //! There are two level of statfulness in actix-web. Application has state
 | //! There are two level of statefulness in actix-web. Application has state
 | ||||||
| //! that is shared across all handlers within same Application.
 | //! that is shared across all handlers within same Application.
 | ||||||
| //! And individual handler can have state.
 | //! And individual handler can have state.
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ use std::io::Read; | ||||||
| use actix_web::*; | use actix_web::*; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /// somple handle
 | /// simple handle
 | ||||||
| fn index(req: HttpRequest) -> Result<HttpResponse> { | fn index(req: HttpRequest) -> Result<HttpResponse> { | ||||||
|     println!("{:?}", req); |     println!("{:?}", req); | ||||||
|     Ok(httpcodes::HTTPOk |     Ok(httpcodes::HTTPOk | ||||||
|  |  | ||||||
|  | @ -16,8 +16,8 @@ Chat server listens for incoming tcp connections. Server can access several type | ||||||
| * `\list` - list all available rooms | * `\list` - list all available rooms | ||||||
| * `\join name` - join room, if room does not exist, create new one | * `\join name` - join room, if room does not exist, create new one | ||||||
| * `\name name` - set session name | * `\name name` - set session name | ||||||
| * `some message` - just string, send messsage to all peers in same room | * `some message` - just string, send message to all peers in same room | ||||||
| * client has to send heartbeat `Ping` messages, if server does not receive a heartbeat message for 10 seconds connection gets droppped | * client has to send heartbeat `Ping` messages, if server does not receive a heartbeat message for 10 seconds connection gets dropped | ||||||
| 
 | 
 | ||||||
| To start server use command: `cargo run --bin server` | To start server use command: `cargo run --bin server` | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ use codec::{ChatRequest, ChatResponse, ChatCodec}; | ||||||
| #[derive(Message)] | #[derive(Message)] | ||||||
| pub struct Message(pub String); | pub struct Message(pub String); | ||||||
| 
 | 
 | ||||||
| /// `ChatSession` actor is responsible for tcp peer communitions.
 | /// `ChatSession` actor is responsible for tcp peer communications.
 | ||||||
| pub struct ChatSession { | pub struct ChatSession { | ||||||
|     /// unique session id
 |     /// unique session id
 | ||||||
|     id: usize, |     id: usize, | ||||||
|  | @ -30,7 +30,7 @@ pub struct ChatSession { | ||||||
| 
 | 
 | ||||||
| impl Actor for ChatSession { | impl Actor for ChatSession { | ||||||
|     /// For tcp communication we are going to use `FramedContext`.
 |     /// For tcp communication we are going to use `FramedContext`.
 | ||||||
|     /// It is convinient wrapper around `Framed` object from `tokio_io`
 |     /// It is convenient wrapper around `Framed` object from `tokio_io`
 | ||||||
|     type Context = FramedContext<Self>; |     type Context = FramedContext<Self>; | ||||||
| 
 | 
 | ||||||
|     fn started(&mut self, ctx: &mut Self::Context) { |     fn started(&mut self, ctx: &mut Self::Context) { | ||||||
|  | @ -149,7 +149,7 @@ impl ChatSession { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /// Define tcp server that will accept incomint tcp connection and create
 | /// Define tcp server that will accept incoming tcp connection and create
 | ||||||
| /// chat actors.
 | /// chat actors.
 | ||||||
| pub struct TcpServer { | pub struct TcpServer { | ||||||
|     chat: SyncAddress<ChatServer>, |     chat: SyncAddress<ChatServer>, | ||||||
|  |  | ||||||
|  | @ -156,7 +156,7 @@ impl<S> Application<S> where S: 'static { | ||||||
|     /// Set application prefix
 |     /// Set application prefix
 | ||||||
|     ///
 |     ///
 | ||||||
|     /// Only requests that matches application's prefix get processed by this application.
 |     /// Only requests that matches application's prefix get processed by this application.
 | ||||||
|     /// Application prefix always contains laading "/" slash. If supplied prefix
 |     /// Application prefix always contains leading "/" slash. If supplied prefix
 | ||||||
|     /// does not contain leading slash, it get inserted. Prefix should
 |     /// does not contain leading slash, it get inserted. Prefix should
 | ||||||
|     /// consists valid path segments. i.e for application with
 |     /// consists valid path segments. i.e for application with
 | ||||||
|     /// prefix `/app` any request with following paths `/app`, `/app/` or `/app/test`
 |     /// prefix `/app` any request with following paths `/app`, `/app/` or `/app/test`
 | ||||||
|  |  | ||||||
|  | @ -341,7 +341,7 @@ impl Default for NormalizePath { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl NormalizePath { | impl NormalizePath { | ||||||
|     /// Create new `NoramlizePath` instance
 |     /// Create new `NormalizePath` instance
 | ||||||
|     pub fn new(append: bool, merge: bool, redirect: StatusCode) -> NormalizePath { |     pub fn new(append: bool, merge: bool, redirect: StatusCode) -> NormalizePath { | ||||||
|         NormalizePath { |         NormalizePath { | ||||||
|             append: append, |             append: append, | ||||||
|  |  | ||||||
|  | @ -214,7 +214,7 @@ impl Cors { | ||||||
|     /// This method register cors middleware with resource and
 |     /// This method register cors middleware with resource and
 | ||||||
|     /// adds route for *OPTIONS* preflight requests.
 |     /// adds route for *OPTIONS* preflight requests.
 | ||||||
|     ///
 |     ///
 | ||||||
|     /// It is possible to register *Cors* middlware with `Resource::middleware()`
 |     /// It is possible to register *Cors* middleware with `Resource::middleware()`
 | ||||||
|     /// method, but in that case *Cors* middleware wont be able to handle *OPTIONS*
 |     /// method, but in that case *Cors* middleware wont be able to handle *OPTIONS*
 | ||||||
|     /// requests.
 |     /// requests.
 | ||||||
|     pub fn register<S: 'static>(self, resource: &mut Resource<S>) { |     pub fn register<S: 'static>(self, resource: &mut Resource<S>) { | ||||||
|  |  | ||||||
|  | @ -1206,7 +1206,7 @@ mod tests { | ||||||
| 
 | 
 | ||||||
|         let mut buf = Buffer::new( |         let mut buf = Buffer::new( | ||||||
|             "GET /test HTTP/1.1\r\n\ |             "GET /test HTTP/1.1\r\n\ | ||||||
|              transfer-encoding: chnked\r\n\r\n");
 |              transfer-encoding: chunked\r\n\r\n");
 | ||||||
|         let req = parse_ready!(&mut buf); |         let req = parse_ready!(&mut buf); | ||||||
| 
 | 
 | ||||||
|         if let Ok(val) = req.chunked() { |         if let Ok(val) = req.chunked() { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue