はじめに
最近案件でAzureを使用することが増え、リアルタイムアプリケーションを作成する上で面白いサービスがあったので紹介します。
Azure SignalR Serviceの概要
リアルタイムウェブを実現する機能としてのSignalRの説明および、PaaSとしてのAzure SignalR Serviceの説明をしていきます。
SignalRとは
SignalRとは、リアルタイムウェブ機能をASP.NETに追加するためのASP.NETのライブラリのひとつで、正式には「ASP.NET SignalR」という名称でMicrosoftより提供されています。SignalRを使用することで、WebアプリケーションはWebブラウザやスマホアプリなどのクライアントに対してコンテンツをプッシュすることができるようになります。プッシュの仕組みを使用することで、アプリケーションで発生したデータの更新をリアルタイムにクライアントに伝えることが可能となります。またSignalRでは、プッシュ機能に使う通信手段を、クライアントのブラウザがサポートするものに自動的に選択してくれるため、開発者が通信手段を選ぶ必要がなく柔軟なアプリケーションを実装することができるようになっています。
Azure SignalR Serviceとは
Azure SignalR Serviceは前項で説明した「ASP.NET SignalR」の機能をASP.NETから切り離し、Azure上で稼働するPaaSとして独立させたサービスです。リアルタイムウェブの機能はそのままに、以下のようなメリットがさらに加わりました。
サーバ側の実装としてASP.NET以外の選択肢を持たせることができる
PaaSとして切り離されたことで、Webアプリケーションサーバが担っていたクライアントとSignalR間の永続的な接続の保持からサーバが開放され、サーバのリソース消費量を抑えることができる
クライアント接続の増減に対して、Azure SignalR Serviceがオートスケーリング機能で対応することができる
これまでASP.NETに限定されていたSignalRのユースケースが、Azure SignalR Serviceを使うことでその制限なく利用できるため、今後はAzure SignalR Serviceを使ったリアルタイムウェブアプリケーションの事例が増えるのではないかと思います。