Expand description
A layer over WebSocket enables carrying byte stream, for both native and WebAssembly.
Providing methods able to wrap any WebSocket message stream implementation,
and impl AsyncRead, AsyncBufRead and AsyncWrite.
§Usage
run cargo add stream-ws to bring it into your crate.
Examples in examples/.
§Tungstenite
With feature tungstenite.
For WebSocketStream in either crate tokio-tungstenite or async-tungstenite,
use
let stream = stream_ws::tungstenite::WsByteStream::new(inner)§Gloo (for WebAssembly)
With feature gloo.
use
let stream = stream_ws::gloo::WsByteStream::new(inner)§Wrapping underlying stream of other WebSocket implementation
Your WebSocket implementation should have a struct S satisfying trait bound
Stream<Item = Result<Msg, E>> + Sink<Msg, Error = E> + Unpinwhere Msg and E
are message and error type of the implementation.
Create a struct Handler and impl WsMessageHandle, which is easy, and then
call Handler::wrap_stream(underlying_stream) to get a WsByteStream.
§Crate features
tokio: impltokio’sAsyncRead,AsyncBufReadandAsyncWritevariantstungstenite: handlers for message and error type from cratetungstenitegloo: handlers for message and error type from crategloo
Modules§
- gloo
gloo - tungstenite
tungstenite
Structs§
- WsByte
Stream - A wrapper implements
AsyncRead,AsyncBufReadandAsyncWrite, around a established websocket connect which implementedStreamandSinktraits.
Enums§
Traits§
- WsMessage
Handle - Classify messages and errors of WebSocket.