私の ASP.NET MVC アプリでは、ユーザーは UI のボタンをクリックして電話をかけます。ajax 要求は MVC アプリに送信され、MVC アプリは電話ダイヤラー (電話をかけるために外部コンポーネントを呼び出すライブラリ内のメソッド) を呼び出します。
ダイヤルされた通話が通話の受信者によって終了された場合、電話ダイヤラー コンポーネントは、独自のクラスでイベント ハンドラーを呼び出してイベントを発生させます。
UI を更新できるように、そのイベントをクライアント側に伝達したいと考えています。
使えないオプション
JavaScript サーバーが送信したイベントを見てきました。ただし、JavaScript サーバーから送信されたイベントでは次のようになるという点で、私の状況とは異なります。
1) クライアントは、サーバーへの新しいソケットで接続を開始します。主な違いは、クライアントが接続を開始することです。
2) サーバーまたはクライアントが接続を終了するまで、接続はライブおよびアクティブに保持されます。
3) サーバーは、接続が確立されてから、クライアントまたはサーバーが接続を終了して通知を交換しなくなるまでの間、常に稼働している必要があります。これは、新しいソケット接続と、その結果、通知交換を処理するための新しいワーカー スレッドがクライアントごとに使用されることを意味します。
サーバー送信イベントを使用する場合は、サーバーを存続させる必要があります。つまり、最初に呼び出され、通話の切断に関する通知が受信されるまで存続する、コントローラーと対応するビューで新しいアクションを作成する必要があります。
これはコストがかかるだけでなく、イベントをリッスンするためだけに新しいビューにリダイレクトされたくないため、私の設計にとって直感的ではありません。
誰にも他の選択肢がありますか?