asp.net MVCチャットアプリケーションのsignalR vs html5 websockets を見ましたが、Microsoft .NET 4.5で拡張された可能性のあるHTML5 WebSocketsに基づいているため、100%私の質問に答えませんWebSocketオブジェクト。
WebSocket機能が実際にSignalRと同じように機能し、WebSocketが利用できない場合は長いポーリングにフォールバックするかどうか疑問に思っていますか?マイクロソフトは、この技術へのアプローチでSignalRと同じ技術を実装するでしょうか?
編集:
これについて疑問に思う他の人にとって、このコメントは、シナリオとSignalRを使用する理由を理解するのに最も役立ちます。
まあ、そうではありません。今までIISとASP.NETには、サポートされているWebSocketに何も組み込まれていなかったため、SignalRプロジェクトは自分でビルドする必要がありました。 SignalRは実装の詳細を抽象化したものであり、WebScocketsクラスは実装の詳細です
WebSocket機能が実際にSignalRと同じように機能し、WebSocketが利用できない場合は長いポーリングにフォールバックするかどうか疑問に思っていますか?
WebSocketは、他の通信技術に依存しない新しいプロトコルです。 RFCから
このテクノロジーの目標は、複数のHTTP接続を開くことに依存しないサーバーとの双方向通信を必要とするブラウザーベースのアプリケーションにメカニズムを提供することです (eg、XMLHttpRequestまたはsおよびlong pollingを使用)。
マイクロソフトは、この技術へのアプローチでSignalRと同じ技術を実装するでしょうか?
仕様に準拠したい場合はそうではありません。確かに、MicrosoftがSignalRに似た高レベルのAPIを開発することを妨げるものは何もありません。これは、通信の詳細を抽象化し、優雅なフォールバックを提供します。ただし、その仮想APIはおそらく、それを置き換えるのではなく WebSocket クラスの上に構築されます。
私はSignalRが進むべき道であり、とにかく.NET自体の一部になると思います(そしておそらくWebソケットのサポートを拡張/マージ/交換します)。サポートされている場合はWebソケットを使用し、サポートされていない場合は一貫したクライアントポーリングハックを使用します。
更新:
この答えはまだ支持されているので、SignalRが正式にASP.NETの一部になったことに言及する価値があります。
更新:.NET Core
@yazanproがコメントで指摘しているように、SignalRも.NET Coreに追加されています。
。NET Core 2.1 で利用可能で、 公式ドキュメント もあります。
SignalRは、ブラウザがWebソケットをサポートしている場合はWebSocket接続を使用するOWINを使用し、ブラウザがWebSocketをサポートしていない場合はロングポーリングを使用します。