0

我有一个聊天客户端类

class ChatClient
{
    Task ConnectAsync(string server);
    Task SendMessageAsync(string message);
    Task DisconnectAsync();
}

一旦用户连接了 ConnectAsync,他们就可以调用 SendMessageAsync 向其他用户发送消息。

在底层有一个 Connection 类,它是 Socket 类的一个非常基本的包装器。主要区别之一是它有一个 OnError 事件。

我还使用了一个可观察的消息流(反应式扩展),它从连接中读取并从服务器生成传入命令流。

我的问题是——当套接字产生错误时,我最好从哪里处理这个错误?我应该在 OnError 事件处理程序中处理它,还是应该从可观察流中截取错误并在那里处理?

无论哪种方式,我都看不到任何好处或坏处,所以我想知道最佳实践是什么?

关于在连接类上举办活动的事情总是让我觉得有点 hacky,但我不知道为什么。

有什么建议么?谢谢

4

1 回答 1

0

我不得不说,最好的解决方案是对最终用户最透明的解决方案。如果错误以某种方式影响用户,则应通知他们或让他们选择如何继续。如果无法通知用户,则以便于将来改进的方式处理错误。

于 2013-02-08T10:27:49.090 回答