Struct websocket::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 runtime = tokio::runtime::Builder::new().build().unwrap();
let addr = "nothing-to-see-here.com".parse().unwrap();

let f = TcpStream::connect(&addr)
   .map(|s| HttpServerCodec.framed(s))
   .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())
   });

runtime.block_on(f).unwrap();

Trait Implementations

impl Clone for HttpServerCodec[src]

impl Copy for HttpServerCodec[src]

impl Debug for HttpServerCodec[src]

impl Decoder for HttpServerCodec[src]

type Item = Incoming<(Method, RequestUri)>

The type of decoded frames.

type Error = HttpCodecError

The type of unrecoverable frame decoding errors. Read more

impl Encoder for HttpServerCodec[src]

type Item = Incoming<StatusCode>

The type of items consumed by the Encoder

type Error = Error

The type of encoding errors. Read more

Auto Trait Implementations

impl RefUnwindSafe for HttpServerCodec

impl Send for HttpServerCodec

impl Sync for HttpServerCodec

impl Unpin for HttpServerCodec

impl UnwindSafe for HttpServerCodec

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Typeable for T where
    T: Any