(&mut self, max_bytes: usize)
| 275 | } |
| 276 | |
| 277 | pub fn read_message(&mut self, max_bytes: usize) -> NetResult<Option<WebSocketMessage>> { |
| 278 | let max_bytes = max_bytes.min(self.max_message_bytes); |
| 279 | match self.socket.read() { |
| 280 | Ok(message) => map_websocket_message(message, max_bytes).map(Some), |
| 281 | Err(tungstenite::Error::Io(err)) if err.kind() == io::ErrorKind::WouldBlock => Ok(None), |
| 282 | Err(tungstenite::Error::ConnectionClosed) | Err(tungstenite::Error::AlreadyClosed) => { |
| 283 | Ok(Some(WebSocketMessage::Close { |
| 284 | code: None, |
| 285 | reason: String::new(), |
| 286 | })) |
| 287 | } |
| 288 | Err(err) => Err(NetError::new(NetErrorKind::WebSocket, err.to_string())), |
| 289 | } |
| 290 | } |
| 291 | |
| 292 | pub fn poll_event(&mut self, max_bytes: usize) -> NetResult<Option<NetEvent>> { |
| 293 | let Some(message) = self.read_message(max_bytes)? else { |
no test coverage detected