You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:41:02