我有一个聊天客户端类
class ChatClient
{
Task ConnectAsync(string server);
Task SendMessageAsync(string message);
Task DisconnectAsync();
}
一旦用户连接了 ConnectAsync,他们就可以调用 SendMessageAsync 向其他用户发送消息。
在底层有一个 Connection 类,它是 Socket 类的一个非常基本的包装器。主要区别之一是它有一个 OnError 事件。
我还使用了一个可观察的消息流(反应式扩展),它从连接中读取并从服务器生成传入命令流。
我的问题是——当套接字产生错误时,我最好从哪里处理这个错误?我应该在 OnError 事件处理程序中处理它,还是应该从可观察流中截取错误并在那里处理?
无论哪种方式,我都看不到任何好处或坏处,所以我想知道最佳实践是什么?
关于在连接类上举办活动的事情总是让我觉得有点 hacky,但我不知道为什么。
有什么建议么?谢谢