タイトルが実際に正しいかどうかわからないので、ここでさらに説明します。私は最初から始めます:)
私は開発に c# と .net を使用しています。
SOAP Web サービスにリクエストを行うアプリケーションがあり、ユーザー リクエストごとに Web サービスに対して 3 ~ 10 のリクエストが生成されます。それらはすべて非同期で実行して一度に完了する必要があるため、Web サービスの Async メソッドを使用します。参照を生成し、コールバックで結果を待ちます。しかし、私が行うすべての非同期呼び出しに対してスレッドを開始する (またはプールから取得する) ように見えるので、10 個のクライアントがある場合、30 から 100 のスレッドを生成する必要があり、16 コアのサーバーでもひどいように聞こえます :)低レベルのトランスポート実装を、ノンブロッキング ソケットを使用し、1 つのスレッドで並列に実行される少なくとも 50 個のソケットをあまりオーバーヘッドなく処理できる独自のものに置き換えたいと考えました。しかし、私は実際にオーバーライドをどこに置くのが最善かわかりません。
クラスを分析System.Web.Services.Protocols.SoapHttpClientProtocol
したところ、実際に使用できる GetWebRequest メソッドがあることがわかりました。オブジェクトが作成するオブジェクトを何らかの方法で中断し、そこからすべてのヘッダーと本文を含む http 要求を取得し、それを自分のソケットで送信できれば..
どのアプローチを使用するかについてのアイデアはありますか? それとも、私が使用できるフレームワークに組み込まれているものがありますか?