0

チャットクライアントクラスがあります

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

ユーザーが ConnectAsync に接続すると、SendMessageAsync を呼び出して他のユーザーにメッセージを送信できます。

内部には、Socket クラスの非常に基本的なラッパーである Connection クラスがあります。主な違いの 1 つは、OnError イベントがあることです。

また、接続から読み取り、サーバーからの着信コマンドのストリームを生成する監視可能なメッセージ ストリーム (リアクティブ拡張機能) も使用しています。

私の質問はこれです-ソケットがエラーを生成したとき、どこからこのエラーを処理するのが最善ですか? OnError イベント ハンドラー内で処理する必要がありますか、それとも監視可能なストリームからエラーをインターセプトしてそこで処理する必要がありますか?

どちらの方法でも良い面も悪い面も見られないので、ベストプラクティスは何を指しているのか疑問に思っています。

接続クラスでイベントを開催することについて、私はいつも少しハックだと思っていましたが、その理由はわかりません。

助言がありますか?ありがとう

4

1 に答える 1

0

最善の解決策は、エンド ユーザーにとって最も透過的な方法であると言わざるを得ません。エラーが何らかの形でユーザーに影響を与える場合は、ユーザーに通知するか、続行する方法を選択できるようにする必要があります。ユーザーに通知できない場合は、将来の改善を容易にする方法でエラーを処理します。

于 2013-02-08T10:27:49.090 に答える