最近ユニバーサルWindowsアプリが登場してコードの共有がWP8.1, Windows8.1間でかなりやりやすくなりました.
しかし, 新しすぎるが故にまだ対応していないライブラリも存在します.
特に, WindowsPhone8.1向けへのライブラリの対応状況が怪しい場合があり, SignalRクライアントも例に漏れません.
そこで今回は, WP8.1でもSignalRを動かせる方法を紹介します.
早速やってみる
NuGetからライブラリを取ってくると, 現在のバージョンでは, 2.0.3というバージョンが手に入ります.
しかし, バージョン2.0.3では, 残念ながらターゲットプラットフォームにWindowsPhone8.1が含まれません.
そのためまだ正式リリース前のライブラリをGitHubから持ってきます.
ここで, 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のバージョンの確認もしてみてください.