【发布时间】:2021-03-17 19:00:40
【问题描述】:
我找到了一个名为 tokio-serde 的库,它将使用 tokio tcp 套接字发送和接收数据,并使用 serde json 对其进行序列化和反序列化。
有两个示例将展示如何使用此库创建服务器和客户端。
在此示例中,您可以了解如何使用serialized 对象发送数据。
serialized
.send(json!({...}));
https://github.com/carllerche/tokio-serde/blob/master/examples/client.rs
所以我创建了一个服务器应用程序并将serialized 对象存储在一个向量中,以便稍后向它们发送消息。
但出于任何原因,这些连接可能会断开,并且对等客户端可能不可用。
我的问题是如何使用serialized 对象检测客户端何时断开连接?
我搜索了文档,但找不到任何解决方案。
非常感谢任何帮助。非常感谢。
【问题讨论】:
-
一般来说,如果另一端已断开连接,则在读取或写入流时会出错。 Tokio-serde 看起来只是遵循底层错误类型,即
std::io::Error。除此之外,您可以在TcpStream上使用.ready()对其进行探测,并以这种方式检测任何错误。
标签: rust serde rust-tokio