モリノラボ

WebRTCやWebSocketやHTTP/2などのWebモダンテクノロジーをピセ株式会社のエンジニアが情報公開していきます。

双方向通信を実現するWebSocket、SiganlRとは?

WebSocket(ウェブ・ソケット)を簡単にいうとウェブで双方向通信を実現するための通信プロトコルです。

これを利用してよりインタラクティブなアプリケーションを実現することができます。WebSocketでは今までではウェブで実現し難かったリアルタイムな通信を可能にしています。

 

このプロトコルを使いこなせば遷移しないウェブアプリケーションができちゃうわけです。

 

昨年、お仕事でSNSサービスを立ち上げるプロジェクトでこのプロトコルを利用し開発に没頭したことを思い出します。

 

開発を通してわかったことは、プロトコル自体は実用レベルではあるものの世の中がついてきていないというところでしょうか。

 

例えば、IEの古いバージョンがブラウザシェアを占めているという都市伝説やキャリア回線の速度規制などの課題からあえなく一機能を断念するようなこともあったんです。

 

そんな調査/検証の段階で見つけたのが「SiganlR」です。

SignalRを簡単に説明するとクロスブラウザに対応したリアルタイム通信ライブラリです。

SignalRは、下記の4つの通信手段を持っています。

  • ウェブソケット - WebSocket
  • APIイベントソース - Server-Sent Events
  • ロングポーリング - Long Poling
  • 永久フレーム - Forever Frame

クライアントの接続環境によって最適な通信手段を選択し双方向通信を確立してくれます。

ソース入手方法

Microsoft USA ASP.NETチームのDamianEdwards氏のGitHubから「SignalR」のソースを入手することができます。

ライセンス:ApacheLicense2.0

+GitHub

DamianEdwards (Damian Edwards) · GitHub

+NuGet

VisualStudioのPackageManagerConsoleから

Install-Package Microsoft.AspNet.SignalR

サンプルのアプリケーションを確認したいなら

Install-Package Microsoft.AspNet.SignalR.Sample

 

簡単に始めてみるなら過去のハンズオンをやってみてはいかがでしょうか。

 

https://blogs.msdn.microsoft.com/tsmatsuz/2012/04/26/websocket-asp-net-signalr/