如何检测awc WebSocket客户端的连接状态?
如何在Actix Web测试中判断WebSocket连接是否已被服务器关闭
我已经搭建了基础的Actix Web服务器,并且在测试中成功用awc::client::Client创建了WebSocket连接。现在需要测试当触发应用状态重置时,服务器是否会关闭所有WebSocket连接。我写的测试代码如下:
#[test] async fn reset_game_works_basic() { let server: TestServer = test_fixtures::get_test_server(); let (_resp, mut chris_connection) = Client::new() .ws(server.url("/join-game?username=Chris")) .connect() .await .unwrap(); let _ = server.post("/reset-game").send().await; let websocket_connected = chris_connection.websocket_connected_status(); // ^^^^ Not a real function assert_eq!(websocket_connected, false); }
从awc的WebSocket文档中,我只找到CloseCode枚举,但它是用来让客户端告知服务器关闭连接的原因的。我试过用is_write_ready()检查连接状态,但它一直返回true。手动用Postman测试时,发送POST请求到/reset-game确实会断开客户端连接,请问该如何在测试代码里判断客户端是否还保持着连接?
内容的提问来源于stack exchange,提问作者Ecinori
相关产品推荐
相关产品推荐

