30

WPFクライアントサーバーアプリケーションが1つあります。これで、クライアントがサーバーに接続し、サーバーが定期的にデータをクライアントにプッシュするようなシナリオがあります。クライアントへの通知のためにどのテクノロジーと方法を選択すべきかについて少し混乱しています。

SignalRは、私が思うWebアプリケーションに最適であり、デスクトップアプリケーションがあります。WCFサービスを使用すると、デュプレックスチャネルとコールバックを介してプッシュ通知を実装できます。では、SignalRまたはWCFサービスを使用することのメリットとデメリットを教えてください。

ありがとう

4

5 に答える 5

23

以下は私の経験からの観察です:

SignalRの長所:

  • 起動が簡単で、学習曲線が低くなります。Webから見つけた例を簡単に実行できます
  • 例外処理(接続の切断、タイムアウトなど)はAPI内に組み込まれています

SignalRの短所:

  • HTTPプロトコルのみをサポート

デュプレックスの長所:

  • HTTPに加えてTCPをサポートします。クライアントの種類がわかっていて、システムが閉じたネットワークで動作している場合、これはパフォーマンスの大幅な向上につながる可能性があります。また、TCPでの作業は、HTTPよりも接続の安定性を高めます

デュプレックスの短所:

  • より高い学習曲線-起動が難しく、安定したソリューションがあります。それを確認したいですか?デュプレックスとSignalRサンプルをWebからダウンロードして、相互に正常に実行するために費やす時間を確認してください。
  • すべての例外的なケース(接続の切断、タイムアウトなど)を処理する必要があります
  • デュプレックスサービスを長期間使用したいときに深刻なタイムアウトの問題に直面したのは私だけではないことを私は知っています。クライアント接続を維持するには、定期的にサービスコールを行う必要があります。

ちなみに、SignalRサービスを利用するためのJavaScript、デスクトップ、Silverlightプロジェクト用のAPIがあります。

于 2013-03-12T11:51:36.173 に答える
6

SignalRはWebだけではありません。SignalRサーバー側のコードは、クライアントのテクノロジを気にせず、クライアント側に実装者が必要なだけです。

一時停止データをクライアントに分離する場合は、この点でWCFよりもはるかに単純であるSignalRを強くお勧めします。私は、WCFに関する問題を共有していましたが、ご自身で問題が発生したと思います。ここで簡単なコンソール/Webアプリケーションのサンプルを見つけました。

一般に、Duplex WCFとここのようなコールバックの使用は私には非常に厄介に思えます。構成サーバー側がたくさんあるので、SignalRの方が簡単だと思います。

さらに、javascriptとobjective-cでデュプレックス(AFAIK)を使用することはできません。

于 2013-03-11T06:22:27.687 に答える
3

それぞれについて、すでにたくさんのデータポイントを取得していると思います。ただし、SignalRを選択すると、ほとんどの場合、テクノロジを選択する際の主要な決定ブロックとなる開発作業よりも有利になります。

APIの開発やテストなどを気にする必要はなく、プロジェクトの独自の実装に集中できます。

それが役に立てば幸い!

于 2013-03-19T04:03:29.317 に答える
2

SignalRは、javascript、.NET、WinFormsとWPFの両方の複数のクライアントで簡単に使用できるようになり、C++クライアントでも使用できるようになりました。自己ホスト型の.NETSignalrサーバー(OWIN)を使用すると、複数のクライアントにプッシュ/受信/ブロードキャストするスタンドアロンサーバーを作成するのに非常に便利です。より簡単なのは、パブリッシュ/サブスクライブ方法を使用するZeroMQだけです。

于 2015-10-03T23:01:40.653 に答える
1

これまで誰も提起していない1つのポイント:

  • SignalR 1.0.1では、サーバーとクライアントに.NET4が必要です。ターゲットとするクライアントとサーバーのバージョンによっては、考慮すべき重要な要素になる可能性があります。

新しいデータを定期的に更新するだけの場合は、デュプレックスWCFまたはSignalrを使用するよりも、クライアント側からWCFとポーリングメカニズムを使用する方がよい場合があります。

于 2013-03-15T02:48:31.493 に答える