Crate http_ws

source ·
Expand description

WebSocket protocol using high level API that operate over futures_core::Stream trait.

§HTTP type

  • http crate types are used for input and output
  • support http/1.1 and http/2

§Examples

use http::{header, Request, StatusCode};
use http_ws::handshake;

// an incoming http request.
let request = Request::get("/")
    .header(header::UPGRADE, header::HeaderValue::from_static("websocket"))
    .header(header::CONNECTION, header::HeaderValue::from_static("upgrade"))
    .header(header::SEC_WEBSOCKET_VERSION, header::HeaderValue::from_static("13"))
    .header(header::SEC_WEBSOCKET_KEY, header::HeaderValue::from_static("some_key"))
    .body(())
    .unwrap();

let method = request.method();
let headers = request.headers();

// handshake with request and return a response builder on success.
let response_builder = handshake(method, headers).unwrap();

// add body to builder and finalized it.
let response = response_builder.body(()).unwrap();

// response is valid response to websocket request.
assert_eq!(response.status(), StatusCode::SWITCHING_PROTOCOLS);

§async HTTP body

Please reference ws function

Re-exports§

Modules§

Structs§

Enums§

  • Status code used to indicate why an endpoint is closing the WebSocket connection.
  • WebSocket handshake errors
  • A WebSocket continuation item.
  • A WebSocket message.
  • Operation codes as part of RFC6455.
  • WebSocket protocol errors.

Functions§

Type Aliases§