Microsoft ASP.NET SignalR

Microsoft ASP.NET SignalRはマイクロソフトのDavid Fowlerが中心となり開発が行われている、ASP.NETにリアルタイム・ウェブ機能を追加するためのライブラリである。
概要.
SignalRはサーバサイドからクライアントのブラウザのJavaScriptによるコードを呼び出しリアルタイム・ウェブを実現するために開発された。リアルタイム・ウェブの機能として、サーバー側のコードが接続されたクライアントにコンテンツをプッシュする機能を実装するために利用できる。これらの機能は以下に示すような複数の通信手段で実装されている。これによりWebSocketがサポートされないブラウザからはWebSocket以外の選択肢を用いてリアルタイム通信を実現できる。これらはライブラリにより最適な通信手段が選択されるため、デベロッパが設定を行う必要はない。
履歴.
2012年11月にASP.NETの一部となることが David Fowler のブログにより発表され、これに伴い直前のバージョン(0.5.3)からパッケージ構成が変更された。これらは ASP.NET 2012 Fall UpdateからRCとして提供され、マイクロソフトによるオフィシャルサポートが開始されている。なお、ASP.NET and Web Tools 2012.2 により正式製品となる SignalR 1.0.0 がリリースされた。
サンプル.
このサンプルは2つのテキスト ボックスに入力された値を全てのクライアントに対して配信している。
View (HTML).
<div>
 <input type="text" id="name" />
 <br /><input type="text" id="message" />
 <br /><input type="button" value="投稿" id="btnPost" />
 <div id="divResult"></div>
</div>
<script>
 $(function () {
 var ch = $.connection.Chat;
 $("#btnPost").click(function () {
 ch.server.postNewMessage($("#name").val(), $("#message").val())
 ch.client.message = function (message) {
 $("#divResult").append('<div>From:'
 + message.From + ' : ' + message.Message + '[' + message.Date + ']' + '</div>'
 };
 $.connection.hub.start();
</script>
Model (C#).
namespace SampleChat.Models
 public class ChatModel
Hub (C#).
using Microsoft.AspNet.SignalR.Hubs;
using SampleChat.Models;
using System;
namespace SampleChat.Hubs
 [HubName("Chat")]
 public class ChatHub : Hub
 public void PostNewMessage(string from, string message)
 var mdl = new ChatModel{
 Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
 From= from,
 Message = message
 Clients.All.message(mdl);