リアルタイムWebを極める
第4回 SignalRの概要とアプリケーション開発の準備
第2回,
SignalRの概要
ASP.
元々はASP.
今までにASP.
SignalRの特徴
最大の特徴は,
SignalRでクライアントからサーバのAPIを呼び出すサンプル
<script type="text/javascript">
$(function() {
var connection = $.hubConnection();
var sample = connection.createHubProxy("sample");
connection.start(function () {
sample.invoke("Say", "Hello, world");
});
})
</script>
SignalRではクライアントから呼び出し可能なメソッドの集合をハブと呼んでいます。クライアントではハブのプロキシオブジェクトを作成して,
SignalRのAPIはメソッド呼び出しなので,
Sayメソッドの戻り値を受け取り,
<script type="text/javascript">
$(function() {
var connection = $.hubConnection();
var sample = connection.createHubProxy("sample");
connection.start(function () {
sample.invoke("Say", "Hello, world").done(function(result) {
alert(result);
});
});
})
</script>
invokeメソッドはDeferredオブジェクトを返しますので,
ブラウザ以外からのアクセス
SignalRではJavaScriptから使えるクライアント以外にも,
WindowsアプリケーションからSignalRのAPIを使うサンプル
class Program
{
static void Main(string[] args)
{
Start();
}
private static async void Start()
{
var connection = new HubConnection("http://example.com/signalr");
var sample = connection.CreateHubProxy("sample");
await connection.Start();
var result = await sample.Invoke<string>("Say", "Hello, world");
Console.WriteLine(result);
}
}
クライアントのAPIはJavaScript版と殆ど変っていないので,
Visual Studioを利用した開発
開発はもちろんVisual Studioを使って行います。最新のVisual Studio 2012にはWebSocketにも対応したIIS Expressと呼ばれる開発用のサーバも用意されていますので,
Visual Studio自体は有料のバージョンだけではなく,
- Visual Studio Express 2012 for Webのダウンロード
- http://
www. microsoft. com/ visualstudio/ jpn/ products/ visual-studio-express-for-web
開発に必要なソフトウェアはすべて含まれているので,
それでは次回は実際にSignalRを使ったアプリケーションを開発し,