ごった煮

色々な事を書いてます

Universal Windows AppでSignalRクライアントを動かす方法について(2014年5月12日現在)

最近ユニバーサルWindowsアプリが登場してコードの共有がWP8.1, Windows8.1間でかなりやりやすくなりました.

しかし, 新しすぎるが故にまだ対応していないライブラリも存在します.

特に, WindowsPhone8.1向けへのライブラリの対応状況が怪しい場合があり, SignalRクライアントも例に漏れません.

そこで今回は, WP8.1でもSignalRを動かせる方法を紹介します.

早速やってみる

NuGetからライブラリを取ってくると, 現在のバージョンでは, 2.0.3というバージョンが手に入ります.

しかし, バージョン2.0.3では, 残念ながらターゲットプラットフォームにWindowsPhone8.1が含まれません.

そのためまだ正式リリース前のライブラリをGitHubから持ってきます.

これがSignalRのリポジトリです.

ここで, future-3027のブランチをダウンロードします.

このブランチが, 次の2.1.0に相当する機能を実装しているブランチです.

ダウンロードしたら, さっそくビルドします.

ビルドを行うと, もしかしたらNuGetのライブラリが云々のエラーが出る場合があるので, その場合は, オプションのNuGetパッケージマネージャーの項目から

足りないパッケージをダウンロードすることを~

にチェックを入れます.

それでもだめなら, 同じ場所にあるパッケージキャッシュをクリア

を押して, キャッシュをクリアします.

するとビルドできるはずです.

ビルド完了したら, プロジェクトファイルがあるフォルダのsrc/Microsoft.AspNet.SignalR.Portable/bin/Release/Microsoft.AspNet.SignalR.Client.dll

をユニバーサルAppプロジェクトのWindows8.1とWP8.1の両項目に追加します.

すると, Sharedの中でライブラリを使用できるようになるはずです.

最後に

これであとは, 今までのSignalRと同じコードをSharedの中に書けば, そのままWindows8.1でもWP8.1でもSignalRのクライアントとしての機能を使用することができます.

おそらく, すぐに新しいバージョンが登場してNuGetから入手できるようになるはずですので, NuGetのバージョンの確認もしてみてください.