1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-09-22 03:20:07 +00:00

ws ping and pong uses bytes #1049

This commit is contained in:
Nikolay Kim 2019-12-09 07:01:22 +06:00
parent 42258ee289
commit a3ce371312
3 changed files with 16 additions and 11 deletions

View file

@ -78,7 +78,7 @@ actix-tls = { version = "1.0.0-alpha.3" }
actix-web-codegen = "0.2.0-alpha.2"
actix-http = "1.0.0-alpha.4"
awc = { version = "1.0.0-alpha.3", default-features = false, optional = true }
awc = { version = "1.0.0-alpha.4", default-features = false, optional = true }
bytes = "0.5.2"
derive_more = "0.99.2"

View file

@ -1,5 +1,10 @@
# Changes
### Changed
* Websockets: Ping and Pong should have binary data #1049
## [1.0.0-alpha.4] - 2019-12-08
### Added

View file

@ -13,9 +13,9 @@ pub enum Message {
/// Binary message
Binary(Bytes),
/// Ping message
Ping(String),
Ping(Bytes),
/// Pong message
Pong(String),
Pong(Bytes),
/// Close message with optional reason
Close(Option<CloseReason>),
/// No-op. Useful for actix-net services
@ -30,9 +30,9 @@ pub enum Frame {
/// Binary frame
Binary(Option<BytesMut>),
/// Ping message
Ping(String),
Ping(Bytes),
/// Pong message
Pong(String),
Pong(Bytes),
/// Close message with optional reason
Close(Option<CloseReason>),
}
@ -119,17 +119,17 @@ impl Decoder for Codec {
}
}
OpCode::Ping => {
if let Some(ref pl) = payload {
Ok(Some(Frame::Ping(String::from_utf8_lossy(pl).into())))
if let Some(pl) = payload {
Ok(Some(Frame::Ping(pl.freeze())))
} else {
Ok(Some(Frame::Ping(String::new())))
Ok(Some(Frame::Ping(Bytes::new())))
}
}
OpCode::Pong => {
if let Some(ref pl) = payload {
Ok(Some(Frame::Pong(String::from_utf8_lossy(pl).into())))
if let Some(pl) = payload {
Ok(Some(Frame::Pong(pl.freeze())))
} else {
Ok(Some(Frame::Pong(String::new())))
Ok(Some(Frame::Pong(Bytes::new())))
}
}
OpCode::Binary => Ok(Some(Frame::Binary(payload))),