[.NET] SignalRのプロフィール - リアルタイムウェブサイトを作成します。
序文
RSSでの消化の過程で、早朝に起床した後、スコットHanselman氏は、ロシアTechDaysでSignalRの映画を紹介参照、全体の人々が手をすぐに見ることについて書きたかった、素晴らしいです。
私も初心者ですので、関連する参照列を入れて、直接、公式サイトやビデオを参照することができます興味を持っている友人は、それは私の記事より明確にする必要があります。
参照 :
- githubの:SignalR
- ロシアTechDaysビデオ
- スコットHanselman氏のブログ
簡単な紹介
SignalRの焦点は、基本的には、クライアントのページからページを再配置、またはリアルタイムデータを再レンダリングするために要求タイムアウトのポーリングにサーバー側の再送信、サイトの設計では、過去に、即時(リアルタイム)です。あなたが最新のデータを持っていたら、しかし、それはすぐにではない、リアルタイムでは、クライアント側のデータを更新するプレゼンテーションを通知するためのイニシアチブをとるだろう、サーバ側でなければなりません。
しかし、多くの複雑なデザインを持つ多数のメカニズムにより、多くの場合、このようなメカニズムは、到達することができます。
SignalRは、.NET Remotingの一般を書くようなものです
- サーバ側で定義ハブクラスに対応します。
- クライアントで対応するプロキシのハブクラス定義。
- クライアントとサーバの間、継続的な接続を確立します。
- この方法は、その要求をサーバ側に送信され、サーバ側の方法であって、クライアント側プロキシ・オブジェクトを呼び出すことができます。
- サーバは要求データを受信した後、すべてのクライアントのために通知を送信します。
あなたがSignalR.Sampleをダウンロードして行けば、その例としては、リアルタイムの株価情報で、在庫情報は時間による更新を通じて助けすることができない、それは死んだの損失かもしれません。すべての第2の関連サーバは、要求を送信した場合、そのサーバーは、爆破にはあまりにも重いロードされます。SignalRを通じ、これはもはや何の解決の問題ではありません。
直接NuGetパッケージマネージャコンソールで、興味のある友人、入力します。
インストール・パッケージをSignalR.Sample
リアルタイムのチャットルームの例
ここではドキュメントと一緒に、すべてのクライアントのためのリアルタイムを確立するためには、最新のニュースから誰かを送りました。
- 説明WebApplicationまたはウェブサイトのASP.NET 4.0を確立し、公式のラインは、私が使用するウェブサイトを示すためにここにいる、Webアプリケーションを使用することです。
- パッケージマネージャコンソールでNuGet、以下に示すように、「インストール・パッケージをSignalR」、関連する参考文献を入力します。
- サンプル・ページの確立:SignalR_Sample.aspx、ユーザーのためには、Web経由のチャットルームのメッセージを送受信することができます。
- チャットクラスの確立、クライアントはすべてを処理し、クライアントプロセスに通知を送信するメッセージを送信します。
次に、ハブページとは、どのようにサーバー側のデザインを見てください。
練習
画面上のメッセージの送受信の最初に、シンプルなデザイン、以下の手順:
聊天室内容:
画面:
次に、サーバ側のチャットクラスの内容を記述します。
ポイント:
- HubName:対応するサーバー側のプロキシオブジェクトをオブジェクト方法を確立するために、クライアント側に代わってこのatttibute。HubNameを通じて、サーバー側のクラス名クライアントがダウン縛られることはありません。設定されていない場合は、サーバー側のHubNameのデフォルトにクラス名のだろう。
- 継承ハブ:ハブを継承した後、多くの人が対応する設計が書き込まれていない、私たちはクライアントをサーバに通知するか、クライアントのハブサーバーにリクエストを送信する方法に焦点を当てる必要があります。ハブは、属性を使用することができる持って、下の図を参照してください。
- public void SendMessage(string message) ,就像 WebService Method 或 PageMethod 一般, client 端透过 proxy object ,可以直接调用 server 端这个方法。后续会介绍到如何在页面上使用。
- Clients property:代表所有有使用 Chat 的页面。而 Clients 的类型是 dynamic ,因为要直接对应到 JavaScript 的对象。
- Clients.addMessage(message):代表 server 端调用 Clients 上的 addMessage 方法,也就是 JavaScript 的方法。
- 总结: Chat 对象负责的,就是当 client 端调用 SendMessage() 方法后,要把这个 message ,送给所有 client 页面上呈现。以达到聊天室的功能。
Server 端的 Hub 对象设计好后,接着来看页面上如何与 server 的 hub 对象交互。
页面:
<%--很重要的一个参考,一定要加,且在这一行之前,一定要先参考jQuery.js与signalR.js--%>
- 先引用 jQuery 与 signalR 的 js 档。
- 很重要的一个步骤:加入一个 js 参考,其路径为“根目录/signalr/hubs”。 SignalR 会建立相关的 JavaScript,放置于此。
- 透过 $.connection.‘server 端的 HubName’,即可建立对应该 hub 的 proxy object。要注意,首字母需小写。
- 定义 client 端上,供 server 端通知的 JavaScript function,这边的范例是 addMessage。
- 当按下送出按钮时,调用 server 端的 SendMessage() 方法,只需要直接透过 proxy object 即可。要注意,首字母需小写。
- $の.connection.hub.start()、オープン接続を介して覚えておいてください。
画面
私たちの複数のブラウザページを通じて、かどうかは、同期メッセージを受信するすべてのクライアントをシミュレートします。
次に、ページ上のハローの世界を入力し、Enterキーを押して、同時に、すべてのページが即座に更新された情報を送信します。
結論
- インストールは非常に簡単です
- かなり単純な
- アプリケーションは、広い範囲に直面しています
実際に、私はちょうど初心者を持っていますが、私はちょうどパッケージの基礎となる、本当に複雑なメカニズムがあまりにも良い何かが、私はすぐに別のアプリケーションやより詳細な紹介を見ることができます信じて、助けることはすぐにあなたと一緒に良いものをご紹介できなかったことを考えますA。
サンプル
ダウンロード:SignalR_WebSite.zip
おそらく、あなたは、次のトレーニングコースに興味を持つようになります:
- 2019年7月27日(6)〜2019年7月28日(日):デザインの進化:テスト駆動開発と継続的なリファクタリングの第六の階段(チャイニーズタイペイ)
- 2019年8月16日(E)〜2019年8月18日(日):[C#アドバンスト・デザイン - デザインは、使用の再構築された高やすさと高い柔軟性のAPIから学ぶ第二の階段(チャイニーズタイペイ)
- 2019年9月21日(6)〜2019年9月22日(日):クリーンコーダー:DIとAOPの高度な戦闘二雁行(チャイニーズタイペイ)
- 2019年10月19日(F):[アートレガシーコードのユニットテストを追加]第エシェロン(台湾)
- 2019年10月20日(日):[開発]第八階段を高速化(チャイニーズタイペイ)
最初の手の情報公共のトレーニングコースを受けてみたい、または家のトレーニング、コンサルティング、コーチング、コンサルティングサービスについてお問い合わせしたいと思い、Facebookのファンページにお問い合わせください。道路の91アジャイル開発を。 |
オリジナル:大列 [.NET] SignalRのプロフィール-リアルタイムウェブサイトを作成します。