Hello,
Websocket with Wasm seems to have a bug. With the following code, I got the web browser error already borrowed: BorrowMutError.
Code to reproduce :
use macroquad::prelude::*;
use quad_net::web_socket::WebSocket;
#[macroquad::main("Networking!")]
async fn main() {
let mut last_message = String::new();
let mut first_message = true;
let mut socket = WebSocket::connect("ws://echo.websocket.events").unwrap();
loop {
if socket.connected() {
if first_message {
let message = "Hello world";
info!("Send message {}", message);
socket.send_text(message);
first_message = false;
}
}
while let Some(data) = socket.try_recv() {
last_message = String::from_utf8(data).unwrap();
}
draw_text(
&format!("Last message received: '{}'", last_message),
50.,
50.,
31.0,
WHITE,
);
next_frame().await
}
}
And "rapid" reproduction steps :
git clone https://github.com/buxx/demo.git
cd demo
git checkout demo-quad-net-ws
cargo build --target wasm32-unknown-unknown
basic-http-server .
Open page at http://127.0.0.1:4000, should see error :
PanicInfo { payload: Any { .. }, message: Some(already borrowed: BorrowMutError), location: Location { file: "/home/bastiensevajol/.cargo/registry/src/github.com-1ecc6299db9ec823/miniquad-0.3.11/src/native/wasm.rs", line: 95, col: 35 }, can_unwind: true } gl-0.1.19.js:1:10496
Hello,
Websocket with Wasm seems to have a bug. With the following code, I got the web browser error
already borrowed: BorrowMutError.Code to reproduce :
And "rapid" reproduction steps :
Open page at http://127.0.0.1:4000, should see error :