SignalRは、ブラウザベースのクライアントとASP.NETベースのサーバーコンポーネントが双方向の多段階会話を行える統合クライアント・サーバーライブラリです。 言い換えれば、この会話は制限なく単一のステートレス要求/応答データ交換を可能にします。 明確に閉鎖されるまで続きます。 会話は恒久的な接続上で行われ、クライアントは複数のメッセージをサーバーに送信し、サーバーはそれに応じて応答できます。また、サーバーはクライアントに非同期メッセージを送信することも可能です。 これはAJaxに似ており、既存の技術に基づいています。 それ自体が複雑なものだ。 一般的に、SignalRはJavascrip{filtering}tの長いポーリングを使ってクライアント側通信を実現します。 WebSocketsの登場後、SignalRはWebSocketの通信もサポートしました。 もちろん、SignalRはサーバー側のタスク並列処理技術も用いてサーバーのスケーラビリティを向上させています。 このプロジェクトは.NET Frameworkプラットフォーム全体を対象としており、アプリケーションのホスティングに限定されず、またクロスプラットフォームのオープンソースプロジェクトでもあり、Mono 2.10+をサポートしているため、Web APIの代替実装オプションとなっています。しかし、サーバー側のオンライン処理においては ASP.NET MVCのWeb APIよりもはるかに優れており、さらに重要なのはWeb Formsで利用できることです。 上はデモチュートリアルです:
Websocket用に使うサーバーはSignalrで、Owinを使ってコンソール上でホストしています!!!
OWINの正式名称はOpen Web Interface for .NETです。
名前だけで解析すると、次の情報が得られます:OWINは.NETプラットフォーム向けのオープンウェブインターフェースです。
では、ウェブインターフェースのインターフェースとは誰なのでしょうか? これはウェブアプリケーションとウェブサーバーの間のインターフェースであり、OWINは.NETウェブアプリケーションとウェブサーバーの間のインターフェースです。
なぜそんなインターフェースが必要なのですか? というのは。 NETのウェブアプリケーションはウェブサーバー上で動作し、.NETウェブアプリケーションはウェブサーバーを通じてユーザーのリクエストを受け取り、応答内容をウェブサーバー経由でユーザーに送信する必要があります。 このようなインターフェースがなければ、.NETウェブアプリケーションは実行している特定のウェブサーバーに依存し、例えばIISに依存し ASP.NET します。 このインターフェースでは、アプリケーション ASP.NET この抽象的なインターフェースに頼るだけでよく、実行中のウェブサーバーには気を配りません。
したがって、OWINの役割は抽象インターフェースのセットを導入することでデカップルを行うことです。 NETのウェブアプリケーションとウェブサーバーは、インターフェースの重要性を改めて示しています。 ソフトウェア開発において、デカップリングの一つ一つが大きな前進です。 3つの異なるブラウザで開き、WebSocketプロトコルのURLを入手しました。
最初のブラウザ:パスワード123でtest3に登録し、ログインします。
2つ目のブラウザ:管理者アカウントを使ってログインします。
3番目のブラウザ:ログインなし、観光客ステータス。
ログインしたアカウントでメッセージを送信でき、他のユーザーがメッセージを受け取ること(観光客も受信可能です)ことがわかりました
メッセージを送ると、相手のニックネームは自動的に表示されますが、ログインしているアカウントは表示されません。
最後にソースコードを添付します。
ウェブソースコード:
観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ 答える
シグナラーサーバーのソースコード:
観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ 答える
|