Rust 如何检测tokio serde库中tokio接收器项中的tcp断开连接?

Rust 如何检测tokio serde库中tokio接收器项中的tcp断开连接?,rust,serde,rust-tokio,Rust,Serde,Rust Tokio,我发现了一个名为tokio serde的库,它将使用tokio tcp套接字发送和接收数据,并使用serde json对数据进行序列化和反序列化 有两个示例将展示如何使用此库创建服务器和客户机 在本例中,您可以看到如何使用序列化的对象发送数据 serialized .send(json!({...})); 因此,我创建了一个服务器应用程序,并将序列化的对象存储在一个向量中,以便稍后向它们发送消息。 但由于任何原因,这些连接都可能被断开,对等客户端可能不可用 这里我的问题是如何

我发现了一个名为tokio serde的库,它将使用tokio tcp套接字发送和接收数据,并使用serde json对数据进行序列化和反序列化

有两个示例将展示如何使用此库创建服务器和客户机

在本例中,您可以看到如何使用
序列化的
对象发送数据

serialized
        .send(json!({...}));

因此,我创建了一个服务器应用程序,并将
序列化的
对象存储在一个向量中,以便稍后向它们发送消息。 但由于任何原因,这些连接都可能被断开,对等客户端可能不可用

这里我的问题是如何使用
序列化的
对象检测客户端何时断开连接

我搜索了文档,但找不到任何解决方案


非常感谢您的帮助。非常感谢。

根据@kmdreko的评论。我试图访问底层的
TcpSocket
,并使用它检测断开状态

类似这样的内容有助于发现客户端是否已断开连接:

if serialized.get_ref().get_ref().as_ref().ready(Interest::WRITABLE).await.is_err() { 
    // Connection error
}

我知道有很多
get_ref()
调用,但这就是我现在发现的。

一般来说,如果另一端断开连接,在读取或写入流时会出现错误。Tokio serde看起来只是遵从基本的错误类型,这将是。除此之外,您还可以使用
TcpStream
对其进行探测,并以这种方式检测任何错误。