しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

ASP.NET SignalR 2.0 リリース候補版が公開されました

最近は SignalR を全然弄っていなかったですが、ちょっと前に 2.0 RC 1 が NuGet で公開されたようです。

NuGet Gallery | Microsoft ASP.NET SignalR 2.0.0-rc1

リリースノートは GitHub にて公開されています。

2.0.0-rc1 · SignalR/SignalR · GitHub

内容を確認したところ、継続的に OWIN との統合にリソースを割いているように感じます。後はバグ修正がメインのリリースと言ったところでしょうか。メモリリークなども解消されているので、動作の安定性向上も期待できそうです。

個人的には、簡単に複数のクライアント ID へのメッセージ送信が出来るようになったのが嬉しいです。

今までは以下のように foreach でループする必要がありました。

// コネクション ID の数だけループする
foreach (var connectionId in user.ConnectionIds)
{
    Clients.Client(connectionId).Send("test message");
}

しかし、SignalR 2.0 からは Clients.Clients メソッド*1で、複数のクライアントへ一括で送信できるようになるみたいです。

Clients.Clients(user.ConnectionIds).Send("test message");

ループして複数回送信を行うよりも、内部的に効率が良くなるのは間違いなさそうです。

これの何が嬉しいかと言うと、リリースノートのサンプルコードにも書かれていたように、1 ユーザーに対して複数のコネクション ID が割り当てられるシチュエーションで効果を発揮します。PC やスマホなど、複数個所から利用されるようなサービスでは、ユーザーにコネクション ID が紐づくので実装が楽になりますね。

SignalR 2.0 の正式版もまもなくリリースとなりそうですね。楽しみです。

*1:名前は凄くイケてない