MCPcopy Create free account
hub / github.com/PerroEngine/Perro / read_message

Method read_message

perro_source/api_modules/perro_networking/src/websocket.rs:277–290  ·  view source on GitHub ↗
(&mut self, max_bytes: usize)

Source from the content-addressed store, hash-verified

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 {

Callers 2

poll_eventMethod · 0.80
poll_variant_eventMethod · 0.80

Calls 4

map_websocket_messageFunction · 0.85
kindMethod · 0.80
minMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected