ASP.NET Core SignalR の概要

SignalR の概要

ASP.NET Core は、アプリへのリアルタイム Web 機能の追加を簡略化するオープンソース SignalR ライブラリです。 リアルタイム Web 機能を使用すると、サーバー側のコードでコンテンツをクライアントに即座にプッシュできます。

に対する優れた候補 SignalR :

  • サーバーからの頻繁な更新が必要なアプリ。 たとえば、ゲーム、ソーシャル ネットワーク、投票、オークション、マップ、GPS などのアプリです。
  • ダッシュボードと監視アプリ。 たとえば、会社のダッシュボード、売上の即時更新、トラベル アラートなどです。
  • コラボレーション アプリ。 ホワイトボード アプリとチーム会議ソフトウェアは、コラボレーション アプリの例です。
  • 通知を必要とするアプリ。 ソーシャル ネットワーク、電子メール、チャット、ゲーム、トラベル アラート、その他の多くのアプリは通知を使用します。

SignalR は、サーバー間リモート プロシージャ コール (RPC) を作成するための API を提供します。 RPC は、サーバー側の .NET Core コードからクライアントで JavaScript 関数を呼び出します。

ASP.NET Core の機能 SignalR を次に示します。

  • 接続管理を自動的に処理します。
  • 接続されているすべてのクライアントに同時にメッセージを送信します。 たとえば、チャット ルームなどです。
  • 特定のクライアントまたはクライアントのグループにメッセージを送信します。
  • 増加するトラフィックを処理するためにスケーリングします。

ソースは SignalR GitHub のリポジトリでホストされます

トランスポート

SignalR では、(グレースフル フォールバックの順に) リアルタイム通信を処理する次の手法がサポートされています。

  • WebSocket
  • Server-Sent イベント
  • 長いポーリング

SignalR は、サーバーとクライアントの機能内にある最適なトランスポート方法を自動的に選択します。

ハブ

SignalR は 、ハブを 使用してクライアントとサーバー間の通信を行います。

ハブは、クライアントとサーバーが互いにメソッドを呼び出す高レベルのパイプラインです。 SignalR は、マシンの境界を越えたディスパッチを自動的に処理し、クライアントがサーバー上でメソッドを呼び出し、その逆も可能にします。 厳密に型指定されたパラメーターをメソッドに渡すことができます。これにより、モデルバインドが有効になります。 SignalR には、JSON に基づくテキストプロトコルと Messagepackに基づくバイナリプロトコルという2つの組み込みのハブプロトコルが用意されています。 MessagePack では、通常、JSON と比較してより小さなメッセージが作成されます。 以前のブラウザーでは、MessagePack プロトコルのサポートを提供するために、 Xhr レベル 2 がサポートされている必要があります。

ハブは、クライアント側のメソッドの名前とパラメーターを含むメッセージを送信することによって、クライアント側のコードを呼び出します。 メソッドパラメーターとして送信されるオブジェクトは、構成されたプロトコルを使用して逆シリアル化されます。 クライアントは、クライアント側コードのメソッドと名前を一致させようとします。 クライアントが一致を検出すると、メソッドを呼び出し、逆シリアル化されたパラメーターデータに渡します。

その他のリソース