Azure SignalR サービスとは

Azure SignalR サービスは、リアルタイムの Web 機能を HTTP 経由でアプリケーションに追加するプロセスを簡略化します。 このリアルタイム機能は、サービスが、接続されているクライアントにシングル ページ Web やモバイル アプリケーションなどのコンテンツの更新をプッシュできるようにします。 その結果、クライアントは、サーバーをポーリングしたり更新プログラムについて新しい HTTP 要求を送信したりしなくても更新されます。

この記事では、Azure SignalR サービスの概要について説明します。

Azure SignalR サービスの用途

サーバーからクライアントにリアルタイムでデータをプッシュする必要があるすべてのシナリオで Azure SignalR Service を使用できます。

サーバーからのポーリングが頻繁に必要とされる、従来のリアルタイム機能も Azure SignalR Service を使用できます。

Azure SignalR Service は、リアルタイムでのコンテンツ更新を必要とするあらゆる種類のアプリケーションのために、さまざまな業界で使用されています。 次に、Azure SignalR Service を使用できる例をいくつか示します。

  • 頻度の高いデータの更新: ゲーム、投票、ポーリング、オークション。
  • ダッシュボードと監視: 会社のダッシュボード、金融市場のデータ、売上の即時更新、マルチプレイヤー ゲームのスコア ボード、IoT 監視。
  • チャット: ライブ チャット ルーム、チャット ボット、オンライン カスタマー サポート、リアルタイムのショッピング アシスタント、メッセンジャー、ゲーム内チャット。
  • 地図上のリアルタイムの位置: 物流の追跡、配送状態の追跡、輸送状態の更新、GPS アプリ。
  • 対象を絞ったリアルタイムの広告: パーソナライズされたリアルタイムのプッシュ型広告およびオファー、対話型広告。
  • コラボレーション アプリ: 共同作成、ホワイトボード アプリ、チーム会議ソフトウェア。
  • プッシュ通知: ソーシャル ネットワーク、メール、ゲーム、移動に関するアラート。
  • リアルタイムのブロードキャスト: ライブ オーディオ/ビデオのブロードキャスト、ライブ キャプション、翻訳、イベントおよびニュースのブロードキャスト。
  • IoT デバイスおよび接続されているデバイス: リアルタイムの IoT メトリック、リモート制御、リアルタイムの状態、および場所の追跡。
  • オートメーション: アップストリーム イベントからのリアルタイム トリガー。

Azure SignalR Service を使用する利点とは

標準ベース:

SignalR では、リアルタイム Web アプリケーションのビルドに使用される多くの手法の抽象化が提供されます。 WebSocket が最適なトランスポートですが、他のオプションを使用できないときは、Server-Sent Events (SSE) や長いポーリングなどの他の手法が使用されます。 SignalR はサーバーとクライアントでサポートされる機能に基づいて、適切なトランスポートを自動的に検出し、初期化します。

ネイティブ ASP.NET Core のサポート:

SignalR Service では、ASP.NET Core と ASP.NET によるネイティブ プログラミングを使用できます。 SignalR Service を使用して新しい SignalR アプリケーションを開発する場合も、既存の SignalR ベースのアプリケーションから SignalR Service に移行する場合も、必要な労力は最小限です。 SignalR Service は、ASP.NET Core の新しい機能であるサーバー側 Blazor もサポートしています。

広範なクライアントのサポート:

SignalR Service は、次のような幅広いクライアントと連携します。

  • Web およびモバイル ブラウザー
  • デスクトップ アプリ
  • モバイル アプリ
  • IoT デバイス
  • ゲーム コンソール

複数の言語サポート:

SignalR Service では、さまざまな言語の SDK が提供されています。

大規模なクライアント接続を処理:

SignalR Service は、大規模なリアルタイム アプリケーション向けに設計されています。 SignalR Service により、数百万のクライアント接続に対応するために複数のインスタンスが連携して動作できます。 このサービスは、シャーディング、高可用性、ディザスター リカバリーの目的で、複数のグローバル リージョンもサポートしています。

SignalR をセルフホストする負担を解消:

SignalR Service に切り替えると、セルフホスト型の SignalR アプリケーションと比較して、スケーリングとクライアント接続を処理するバックプレーンを管理する必要がなくなります。 また、このフル マネージド サービスにより、Web アプリケーションが簡素化され、ホスティングのコストを削減できます。 SignalR Service では、グローバルに展開する最高水準のデータ センターとネットワークを提供しており、数百万の接続に合わせてスケーリングし、Azure の標準のコンプライアンスとセキュリティを実現します。

SignalR Service では、Azure Functions および Event Grid との統合により、サーバーベースの構成とサーバーレス環境の両方がサポートされます。

Managed SignalR Service

さまざまなメッセージング パターンに対応する豊富な API を提供:

SignalR Service により、サーバーは、特定の接続やすべての接続にメッセージを送信すること、または特定のユーザーに属するか、任意のグループに割り当てられた接続のサブセットにメッセージを送信することができます。

Azure SignalR Service の使用方法

Azure SignalR Service を使用してプログラミングを行うには多数のさまざまな方法があります。 以下に例を示します。