チャットクライアントクラスがあります
class ChatClient
{
Task ConnectAsync(string server);
Task SendMessageAsync(string message);
Task DisconnectAsync();
}
ユーザーが ConnectAsync に接続すると、SendMessageAsync を呼び出して他のユーザーにメッセージを送信できます。
内部には、Socket クラスの非常に基本的なラッパーである Connection クラスがあります。主な違いの 1 つは、OnError イベントがあることです。
また、接続から読み取り、サーバーからの着信コマンドのストリームを生成する監視可能なメッセージ ストリーム (リアクティブ拡張機能) も使用しています。
私の質問はこれです-ソケットがエラーを生成したとき、どこからこのエラーを処理するのが最善ですか? OnError イベント ハンドラー内で処理する必要がありますか、それとも監視可能なストリームからエラーをインターセプトしてそこで処理する必要がありますか?
どちらの方法でも良い面も悪い面も見られないので、ベストプラクティスは何を指しているのか疑問に思っています。
接続クラスでイベントを開催することについて、私はいつも少しハックだと思っていましたが、その理由はわかりません。
助言がありますか?ありがとう