この質問の前に、私は30時間ほど前にSignalRを使い始めたと言います。アマチュアの質問はご容赦ください。また、見逃したドキュメントをご存知の場合は、お気軽にご紹介ください。また、私はブログ投稿を書くつもりはありません-私が今いる場所にたどり着くために私が行ったステップを説明するだけです。
TLDR?最後の質問にスキップしてください...
SQL Serverバックプレーンを使用する必要があります(Redisを使用したいのですが、現在Redisを扱っておらず、1つの開発サイクルであまりにも多くの新しいテクノロジーを導入することに抵抗があります)。現在、利用可能なNuGetパッケージがないMicrosoft.AspNet.SignalR.SqlServer
ため、Githubソースを使用する必要があります。
そこで、ソースを取得してコンパイルし、Microsoft.AspNet.SignalR.SqlServer.dllへの参照を追加しましたが、コンパイルが失敗します(特にGlobalHost.DependencyResolver.UseSqlServer( ... )
、コードで参照している場合、*.SqlServer
コードがより新しいバージョンの*.SignalR.Core
-Githubのバージョンには、NuGetパッケージがリリースされてから(間違いなく)いくつかの変更が加えられているため、それほど驚くことではありません)。:(
したがって、次のステップは、*.Core
でコンパイルしたを使用すること*.SqlServer
です。次の問題-新しいSignalRバージョンは、ライブラリで動作しなくなった*.Hosting.Common
か*.Hosting.AspNet
、ライブラリに置き換えられました*.Owin
。
そこで、追加しました*.Owin
(そして、Owin-NuGetから)が、さらに別の問題が発生しました:拡張メソッドが機能しなくなりました-OwinでMapHubs( ... )
呼び出された拡張メソッドがありますが、それらはもう機能しません-それらは機能します(したがって、 Owinを参照する必要があると思います)。MapHubs( IAppBuilder builder, ... )
RouteTable
Owin.IAppBuilder
だから、これは私がいるところです。私はOwinについて簡単に読みました(クールなコンセプトのようです)が、サーバー側でSignalRをセットアップできるようにするためだけに、頭を悩ませるのに何時間も費やすことは特に気にしません。だから、今質問のために:
- SignalRの古いNuGetパッケージでうまくプレイできるようにする必要が
*.SqlServer
ありますか(言い換えると、の依存関係を変更すると、信頼性の*.SqlServer
低い動作が発生する可能性があります)?または、*.SqlServer
SignalRの現在のNuGetリリースバージョンで動作するバージョンがすでにオンラインで利用可能ですか? - Owinホストアプローチを介してSignalRを実行するには、どのような特定の手順が必要ですか(たとえば、ナンシー統合がスローされない限り、これの例は見つかりません-またはそれは正しいアプローチですか)?
- MapHubsメソッドの代替アプローチは何ですか?IAppBuilderはどこから入手できますか?私もそうすることになっていますか?
- Googleグループの投稿で、David Fowlerは、Owinのサポートにより、AspNetの依存関係が不要になったことを示しています。それは問題ありませんが、ASP.Net MVCアプリでSignalRを使用する理由はありますか?
- SignalRのどの部分もサーバー上のIISを介してホストされていない場合、クライアント側のフォールバック(つまり、SSEまたはロングポーリング)はIISを経由しますか、それともOwinホストを独立して使用しますか?
- 最後に、別の既存のサイトの仮想ディレクトリとしてホストされているASP.NetMVC4プロジェクトからSignalRを実行することを計画していました。単一のドメイン内で作業したいと考えています。Owinのアプローチでは、サイトがIIS 7.5でホストされている場合でも、これを実行できますか?
更新:上記の1.のように、現在のNuGet実装*.SqlServer
に依存させることで、コードをコンパイルすることができました。*.Core
だから今、私は開発を続けることができます。これを本番環境で使用したいとは思いませんが、オブジェクトの配置に関して小さな変更を加えるだけで済みましたが、それは良いアプローチではないと思います。したがって、Owinのアプローチに関する私の質問は、私が採用したアプローチが適切であると誰かが私に納得させることができない限り、依然として有効です。
ありがとう、ザック