Struct evzht9h3nznqzwl::codec::http::HttpServerCodec [] [src]

pub struct HttpServerCodec;

A codec that can be used with streams implementing AsyncRead + AsyncWrite that can serialize HTTP responses and deserialize HTTP requests. Using this with an async TcpStream will give you a very bare async HTTP server.

This crate sends out one HTTP request / response in order to perform the websocket handshake then never talks HTTP again. Because of this an async HTTP implementation is needed.

Example

use websocket::async::HttpServerCodec;

let mut core = Core::new().unwrap();
let addr = "nothing-to-see-here.com".parse().unwrap();

let f = TcpStream::connect(&addr, &core.handle())
   .map(|s| s.framed(HttpServerCodec))
   .map_err(|e| e.into())
   .and_then(|s| s.into_future().map_err(|(e, _)| e))
   .and_then(|(m, s)| match m {
       Some(ref m) if m.subject.0 == Method::Get => Ok(s),
       _ => panic!(),
   })
   .and_then(|stream| {
       stream
          .send(Incoming {
               version: HttpVersion::Http11,
               subject: StatusCode::NotFound,
               headers: Headers::new(),
           })
           .map_err(|e| e.into())
   });

core.run(f).unwrap();

Trait Implementations

impl Copy for HttpServerCodec
[src]

impl Clone for HttpServerCodec
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for HttpServerCodec
[src]

[src]

Formats the value using the given formatter.

impl Encoder for HttpServerCodec
[src]

The type of items consumed by the Encoder

The type of encoding errors. Read more

[src]

Encodes a frame into the buffer provided. Read more

impl Decoder for HttpServerCodec
[src]

The type of decoded frames.

The type of unrecoverable frame decoding errors. Read more

[src]

Attempts to decode a frame from the provided buffer of bytes. Read more

[src]

A default method available to be called when there are no more bytes available to be read from the underlying I/O. Read more