aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/reader.rs24
1 files changed, 11 insertions, 13 deletions
diff --git a/src/reader.rs b/src/reader.rs
index 62b4e08..751ee1d 100644
--- a/src/reader.rs
+++ b/src/reader.rs
@@ -133,21 +133,19 @@ impl WebSocketOnMessageRead {
#[cfg(target_arch = "wasm32")]
impl Readable for WebSocketOnMessageRead {
async fn read_buf(&mut self, buffer: &mut Buffer) -> Result<usize> {
- let mut queue = Vec::new();
- self.queue.recv_many(&mut queue, 10).await;
- let mut bytes = 0;
- for msg in queue {
- match msg {
- WsMessage::Text(s) => {
- let text = s.as_bytes();
- bytes += buffer.write(text)?;
- }
- WsMessage::Binary(v) => {
- bytes += buffer.write(&v)?;
- }
+ debug!("reading buf");
+ let msg = self.queue.recv().await;
+ let msg = match msg {
+ Some(msg) => msg,
+ None => return Err(Error::WebSocketClosed),
+ };
+ match msg {
+ WsMessage::Text(s) => {
+ let text = s.as_bytes();
+ Ok(buffer.write(text)?)
}
+ WsMessage::Binary(v) => Ok(buffer.write(&v)?),
}
- Ok(bytes)
}
}