Asynchronous 在使用rust websocket时,如何处理错误,以便只有该连接失败,而不是整个程序失败?
我正在尝试让一个生锈的WebSocket服务器启动并运行。我从第一个开始 每次我收到一个Asynchronous 在使用rust websocket时,如何处理错误,以便只有该连接失败,而不是整个程序失败?,asynchronous,error-handling,websocket,rust,Asynchronous,Error Handling,Websocket,Rust,我正在尝试让一个生锈的WebSocket服务器启动并运行。我从第一个开始 每次我收到一个Io错误,比如当连接中断时,整个程序都会毫无错误地结束。我将示例第26行的代码修改为: .map_err(|InvalidConnection {error, ..}| { println!("Error:{:?}",error); return error; }) 这会打印错误,但不会阻止程序仅停止单个连接而不会自行崩溃 我遇到的最常见错误是: Io(错误{repr:Custom(自定义{
Io
错误,比如当连接中断时,整个程序都会毫无错误地结束。我将示例第26行的代码修改为:
.map_err(|InvalidConnection {error, ..}| {
println!("Error:{:?}",error);
return error;
})
这会打印错误,但不会阻止程序仅停止单个连接而不会自行崩溃
我遇到的最常见错误是:
Io(错误{repr:Custom(自定义{kind:Other,错误:Stream(错误{repr:Custom(自定义{kind:ConnectionAborted,错误:StringError(“观察到意外的EOF”)}})})
好的,在rust IRC频道的帮助下,我找到了解决方案。我刚刚将错误替换为“无”,并将其过滤掉
.map(Some).or_else(|_| -> Result<_, ()> { Ok(None) }).filter_map(|x| x)
.map(部分).或| | |->结果{Ok(无)}).筛选| map(| x | x)
也许这些信息会帮助有类似问题的人。好的,在rust IRC频道的帮助下,我找到了解决方案。我刚刚将错误替换为“无”,并将其过滤掉
.map(Some).or_else(|_| -> Result<_, ()> { Ok(None) }).filter_map(|x| x)
.map(部分).或| | |->结果{Ok(无)}).筛选| map(| x | x)
也许这些信息会对有类似问题的人有所帮助。但你的问题是什么?如何处理Io错误,使我的程序不会死掉并删除所有其他连接…@Hahihula请编辑你的问题,明确提问。没有突出显示和清晰询问的问题在Stackoverflow中是不好的。但是你的问题是什么?如何处理Io错误,使我的程序不会死掉并删除所有其他连接…@Hahihula请编辑你的问题以清楚地问出它。没有突出显示和明确询问的问题在课堂上是不好的。