Struct websocket::codec::ws::MessageCodec [−][src]
A codec for asynchronously decoding and encoding websocket messages.
This codec decodes messages into the OwnedMessage struct, so using this
the user will receive messages as OwnedMessages. However it can encode
any type of message that implements the ws::Message trait (that type is
decided by the M type parameter) like OwnedMessage and Message.
Warning: if you don’t know what your doing or want a simple websocket connection
please use the ClientBuilder or the Server structs. You should only use this
after a websocket handshake has already been completed on the stream you are
using.
Example (for the high-level websocket crate)
use websocket::async::{MessageCodec, MsgCodecCtx}; let mut runtime = tokio::runtime::Builder::new().build().unwrap(); let mut input = Vec::new(); Message::text("50 schmeckels").serialize(&mut input, false); let f = MessageCodec::default(MsgCodecCtx::Client) .framed(ReadWritePair(Cursor::new(input), Cursor::new(vec![]))) .into_future() .map_err(|e| e.0) .map(|(m, _)| { assert_eq!(m, Some(OwnedMessage::Text("50 schmeckels".to_string()))); }); runtime.block_on(f).unwrap();
Implementations
impl MessageCodec<OwnedMessage>[src]
pub fn default(context: Context) -> MessageCodec<OwnedMessage>[src]
Create a new MessageCodec with a role of context (either Client
or Server) to read and write messages asynchronously.
This will create the crate’s default codec which sends and receives
OwnedMessage structs. The message data has to be sent to an intermediate
buffer anyway so sending owned data is preferable.
If you have your own implementation of websocket messages, you can
use the new method to create a codec for that implementation.
impl<M> MessageCodec<M> where
M: Message, [src]
M: Message,
pub fn new(context: Context) -> MessageCodec<M>[src]
Creates a codec that can encode a custom implementation of a websocket message.
If you just want to use a normal codec without a specific implementation
of a websocket message, take a look at MessageCodec::default.
Trait Implementations
impl<M> Decoder for MessageCodec<M> where
M: Message, [src]
M: Message,
type Item = OwnedMessage
The type of decoded frames.
type Error = WebSocketError
The type of unrecoverable frame decoding errors. Read more
pub fn decode(
&mut self,
src: &mut BytesMut
) -> Result<Option<<MessageCodec<M> as Decoder>::Item>, <MessageCodec<M> as Decoder>::Error>[src]
&mut self,
src: &mut BytesMut
) -> Result<Option<<MessageCodec<M> as Decoder>::Item>, <MessageCodec<M> as Decoder>::Error>
pub fn decode_eof(
&mut self,
buf: &mut BytesMut
) -> Result<Option<Self::Item>, Self::Error>[src]
&mut self,
buf: &mut BytesMut
) -> Result<Option<Self::Item>, Self::Error>
pub fn framed<T>(self, io: T) -> Framed<T, Self> where
Self: Encoder,
T: AsyncRead + AsyncWrite, [src]
Self: Encoder,
T: AsyncRead + AsyncWrite,
impl<M> Encoder for MessageCodec<M> where
M: Message, [src]
M: Message,
type Item = M
The type of items consumed by the Encoder
type Error = WebSocketError
The type of encoding errors. Read more
pub fn encode(
&mut self,
item: <MessageCodec<M> as Encoder>::Item,
dst: &mut BytesMut
) -> Result<(), <MessageCodec<M> as Encoder>::Error>[src]
&mut self,
item: <MessageCodec<M> as Encoder>::Item,
dst: &mut BytesMut
) -> Result<(), <MessageCodec<M> as Encoder>::Error>
Auto Trait Implementations
impl<M> RefUnwindSafe for MessageCodec<M>
impl<M> Send for MessageCodec<M>
impl<M> Sync for MessageCodec<M>
impl<M> Unpin for MessageCodec<M>
impl<M> UnwindSafe for MessageCodec<M>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> Typeable for T where
T: Any,
T: Any,