Azure SignalR サービスとはWhat is Azure SignalR Service?

Azure SignalR サービスは、リアルタイムの Web 機能を HTTP 経由でアプリケーションに追加するプロセスを簡略化します。Azure SignalR Service simplifies the process of adding real-time web functionality to applications over HTTP. このリアルタイム機能は、サービスが、接続されているクライアントにシングル ページ Web やモバイル アプリケーションなどのコンテンツの更新をプッシュできるようにします。This real-time functionality allows the service to push content updates to connected clients, such as a single page web or mobile application. その結果、クライアントは、サーバーをポーリングしたり更新プログラムについて新しい HTTP 要求を送信したりしなくても更新されます。As a result, clients are updated without the need to poll the server, or submit new HTTP requests for updates.

この記事では、Azure SignalR サービスの概要について説明します。This article provides an overview of Azure SignalR Service.

Azure SignalR サービスの用途What is Azure SignalR Service used for?

サーバーからクライアントにリアルタイムでデータをプッシュする必要があるすべてのシナリオで Azure SignalR Service を使用できます。Any scenario that requires pushing data from server to client in real time, can use Azure SignalR Service.

サーバーからのポーリングを通常必要とする従来のリアルタイム機能でも Azure SignalR Service を使用できます。Traditional real-time features that often require polling from server, can also use Azure SignalR Service.

Azure SignalR Service は、リアルタイムでのコンテンツ更新を必要とするあらゆる種類のアプリケーションのために、さまざまな業界で使用されています。Azure SignalR Service has been used in a wide variety of industries, for any application type that requires real-time content updates. Azure SignalR Service を使用するのに適した例をいくつか示します。We list some examples that are good to use Azure SignalR Service:

  • 頻度の高いデータの更新: ゲーム、投票、ポーリング、オークション。High frequency data updates: gaming, voting, polling, auction.
  • ダッシュ ボードと監視: 会社のダッシュボード、金融市場のデータ、売上の即時更新、マルチ プレイヤー ゲームのスコア ボード、および IoT 監視。Dashboards and monitoring: company dashboard, financial market data, instant sales update, multi-player game leader board, and IoT monitoring.
  • チャット: ライブ チャット ルーム、チャット ボット、オンライン カスタマー サポート、リアルタイムのショッピング アシスタント、メッセンジャー、ゲーム内チャットなど。Chat: live chat room, chat bot, on-line customer support, real-time shopping assistant, messenger, in-game chat, and so on.
  • 地図上のリアルタイムの位置: 物流の追跡、配送状態の追跡、輸送状態の更新、GPS アプリ。Real-time location on map: logistic tracking, delivery status tracking, transportation status updates, GPS apps.
  • 対象を絞ったリアルタイムの広告: パーソナライズされた読み取り時間のプッシュ型広告およびオファー、対話型広告。Real time targeted ads: personalized real time push ads and offers, interactive ads.
  • コラボレーション アプリ: 共同作成、ホワイトボード アプリ、チーム会議ソフトウェア。Collaborative apps: coauthoring, whiteboard apps and team meeting software.
  • プッシュ通知: ソーシャル ネットワーク、電子メール、ゲーム、移動に関するアラート。Push notifications: social network, email, game, travel alert.
  • リアルタイムのブロードキャスト: ライブ オーディオ/ビデオのブロードキャスト、ライブ キャプション、翻訳、イベント/ニュースのブロードキャスト。Real-time broadcasting: live audio/video broadcasting, live captioning, translating, events/news broadcasting.
  • IoT デバイスおよび接続されているデバイス: リアルタイムの IoT メトリック、リモート制御、リアルタイムの状態、および場所の追跡。IoT and connected devices: real-time IoT metrics, remote control, real-time status, and location tracking.
  • オートメーション: アップストリーム イベントからのリアルタイム トリガー。Automation: real-time trigger from upstream events.

Azure SignalR Service を使用する利点とはWhat are the benefits using Azure SignalR Service?

標準ベース:Standard based:

SignalR では、リアルタイム Web アプリケーションの構築に使用される多くの手法の抽象化が提供されます。SignalR provides an abstraction over a number of techniques used for building real-time web applications. WebSocket が最適なトランスポートですが、他のオプションを使用できないときは、Server-Sent Events (SSE) や長いポーリングなどの他の手法が使用されます。WebSockets is the optimal transport, but other techniques like Server-Sent Events (SSE) and Long Polling are used when other options aren't available. SignalR はサーバーとクライアントでサポートされる機能に基づいて、適切なトランスポートを自動的に検出し、初期化します。SignalR automatically detects and initializes the appropriate transport based on the features supported on the server and client.

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

SignalR Service では、ASP.NET Core と ASP.NET によるネイティブ プログラミングを使用できます。SignalR Service provides native programming experience with ASP.NET Core and ASP.NET. SignalR Service を使用して新しい SignalR アプリケーションを開発する場合も、既存の SignalR ベースのアプリケーションから SignalR Service に移行する場合も、必要な労力は最小限です。Developing new SignalR application with SignalR Service, or migrating from existing SignalR based application to SignalR Service requires minimal efforts. SignalR Service は、ASP.NET Core の新しい機能であるサーバー側 Blazor もサポートしています。SignalR Service also supports ASP.NET Core's new feature, Server-side Blazor.

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

SignalR Service は、Web ブラウザー、モバイル ブラウザー、デスクトップ アプリ、モバイル アプリ、サーバー プロセス、IoT デバイス、ゲーム コンソールなど、幅広い範囲のクライアントに対応しています。SignalR Service works with a broad range of clients, such as web and mobile browsers, desktop apps, mobile apps, server process, IoT devices, and game consoles. SignalR Service では、さまざまな言語の SDK が提供されています。SignalR Service offers SDKs in different languages. また、SignalR Service では、Web クライアントおよび多数の JavaScript フレームワークを使用できるようにするために、ネイティブの ASP.NET Core SDK や ASP.NET C# SDK に加えて、JavaScript クライアント SDK も提供されています。In addition to native ASP.NET Core or ASP.NET C# SDKs, SignalR Service also provides JavaScript client SDK, to enable web clients, and many JavaScript frameworks. Java クライアント SDK では、Android ネイティブ アプリなどの Java アプリケーションもサポートされます。Java client SDK is also supported for Java applications, including Android native apps. SignalR Service は、REST API をサポートしており、また Azure Functions および Event Grid との統合を通じてサーバーレスをサポートしています。SignalR Service supports REST API, and serverless through integrations with Azure Functions and Event Grid.

大規模なクライアント接続を処理:Handle large-scale client connections:

SignalR Service は、大規模なリアルタイム アプリケーション向けに設計されています。SignalR Service is designed for large-scale real-time applications. SignalR Service により、数百万のクライアント接続に対応するために複数のインスタンスが連携して動作できます。SignalR Service allows multiple instances to work together to scale to millions of client connections. このサービスは、シャーディング、高可用性、ディザスター リカバリーの目的で、複数のグローバル リージョンもサポートしています。The service also supports multiple global regions for sharding, high availability, or disaster recovery purposes.

SignalR をセルフホストする負担を解消:Remove the burden to self-host SignalR:

SignalR Service に切り替えると、セルフホスト型の SignalR アプリケーションと比較して、スケールとクライアント接続を処理するバック プレーンを管理する必要がなくなります。Compared to self-hosted SignalR applications, switching to SignalR Service will remove the need to manage back planes that handle the scales and client connections. また、このフル マネージド サービスにより、Web アプリケーションが簡素化され、ホスティングのコストを削減できます。The fully managed service also simplifies web applications and saves hosting cost. SignalR Service は、グローバルに展開する最高水準のデータ センターとネットワークを提供しており、数百万の接続に対応し、SLA を保証します。その一方で、Azure 標準のコンプライアンスとセキュリティをすべて提供しています。SignalR Service offers global reach and world-class data center and network, scales to millions of connections, guarantees SLA, while providing all the compliance and security at Azure standard.

マネージド SignalR Service

さまざまなメッセージング パターンに対応する豊富な API を提供:Offer rich APIs for different messaging patterns:

SignalR Service により、サーバーは、特定の接続やすべての接続にメッセージを送信すること、または特定のユーザーに属するか、任意のグループに割り当てられた接続のサブセットにメッセージを送信することができます。SignalR Service allows the server to send messages to a particular connection, all connections, or a subset of connections that belong to a specific user, or have been placed in an arbitrary group.

Azure SignalR Service の使用方法How to use Azure SignalR Service

Azure SignalR Service を使用してプログラミングを行うにはさまざまな方法があります。以下にいくつかの例を示します。There are many different ways to program with Azure SignalR Service, as some of the samples listed here: