我有一个聊天客户端类
class ChatClient
{
Task ConnectAsync(string server);
Task SendMessageAsync(string message);
Task DisconnectAsync();
}
用户连接ConnectAsync后,他们可以调用SendMessageAsync向其他用户发送消息。
引擎盖下有一个Connection类,它是Socket类的一个非常基本的包装器。其中一个主要区别是它有一个OnError事件。
我还使用了一个可观察的消息流(反应式扩展),它从连接中读取并从服务器生成一个传入命令流。
我的问题是这个 - 当套接字产生错误时,我最好从哪里处理这个错误?我应该在OnError事件处理程序中处理它,还是应该从可观察流中拦截错误并在那里处理它?</ p>
我无论如何都看不出任何上行或下行,所以我想知道最佳做法是什么?
关于在连接类上发生事件的事情总是让我觉得有点hacky,但我不知道为什么。
有什么建议吗?感谢
答案 0 :(得分:0)
我不得不说最好的解决方案对最终用户来说是最透明的。如果错误以某种方式影响用户,则应通知他们或选择如何继续。如果无法通知用户,则以便于将来改进的方式处理错误。