どのような、WCFサーバーを通知し、WCFクライアントに変化するかを(より良い解決して簡単なポーリングなど彗星の長ポーリング)
-
19-09-2019 - |
質問
私も少しWCFクライアントの接続は、WCFサーバーが一部のデータの 変化 サーバーに、お客様の必要性 更新 その表示になります。
となる可能性があるファイアウォール間でのお客様はサーバー通信を行います。
- すべてのコミュニケーショけるHTTP
- サーバーになること(物理)との発信するサービスです。
として皆様にお伝えしたくて書き込みの両方のクライアントとサーバーのいらない限界の解決にのみ使用石鹸。
い建surportのために"長ポーリング" / "彗星"など
感謝の最も参考に答えた湿原の実施の方法について長ポーリングには、WCF.しかし私の"売り"のWCFたことはなにができるこのようなものだけを構成することによりチャネルで使用するconfigファイルです。 例えしたいチャンネルにおける論理的に二つの方法が物理的に受信します。
解決
で音のように私からの回答:用するポーリング.:)にしないといけないのではないかも左説明しうることができるかもしれませることWCF、最も効率的な方法で可能です。
の基礎:
- 第一に、決定いたいぞ"長世論調査"のままです。のための引数の日本酒にも徒歩5分タイムアウト。
- クライアント側の結合には、変更の
sendTimeout="00:05:00"
. - を使っているようにXmlHttpRequest(XHR)長ポーリング時のタイムアウトはして実際に事故が発生した場合には、検知して再発行の次のポーリング。これは非常に簡単で、WCFがあるので特定の例外
TimeoutException
, と聞き取ることができると思いを容易に検出したことに対その他の例外です。 - によってどのようんを主催し、WCFサービスませることができるように設定を自分で処理することができなくまで5分.からの純粋WCF視してくださいを設定してください
receiveTimeout="00:05:00"
.しかし、少なくともこの場を開催中ASP.NET が必要となりますので、設定のASP.NET 実行時に高いタイムアウトするをベースに制御を行っています。<httpRuntime executionTimeout="300" />
(注意: の測定(秒)この属性)に指定します。
いて効率的には、クライアント
ばかりのときは設定のクライアントに同期して電話サービスとクライアントのブロックまで5分なの対応など非常に効率的な利用のシステム資源です。きの一部として購入するとき、通話を背景にスレッドが、それだと決まっているわけですからねむまでスレッド資源の通話は抜群です。最も効率的な方法で扱うことは非ます。
だ作成サービスの契約により手がいるのを確認出 この項にMSDN OperationContractAttribute.AsyncPattern
詳細を追加する方法 BeginXXX
/EndXXX
非同期方式の一足ごとに発信します。しかし、使用している場合は、 svcutil
を生成する操作の契約において非同期方法の発生に /async
オプションにョンをインストールして下さい。詳しくはこ チェックの同期、非同期トピックMSDN.
ることができますく非同期操作を定義し、パターンのようなものだとXHR.を呼び出す BeginXXX
方法を渡しします an AsyncCallback
delegate.の BeginXXX
返されます IAsyncResult
, きのいずれかを実装したい場合は、できるのを待つの操作により高度なシナリオ)または無視し、WCFインフラは非同期要求の送信のサーバの応答を待機す。時の応答を受信した または 例外が発生すると、コールバックをお渡された BeginXXX
方法メソッドが呼び出されます。この中にコールバック方法を呼出す必要があります。に対応する EndXXX
法の通過に IAsyncResult
ることが渡されます。電話での EndXXX
法に必要なものを例外処理を扱う論理的に故障が発生したら、以下のメソッドを呼び出し、これもだいすることを捕まえることが TimeoutException
ご紹介しています。といって応答性の良い、そのデータは、返されるから EndXXX
電話で対応するデータをわずかでも意味がある。
注意: 気をつけなければいけないのだこのパターンは、自然のスレッド.の非同期コールバックから、WCFいただいたスレッドから の管理スレッドプール.一歩間違えれば更新UIに技術などのコンポーネントのラインナップはサポートする必要がありまmarshalの通話に戻るのUIのスレッドを使用 Invoke
または BeginInvoke
ます。
いて効率的にサーバー
いい気になる効率性のお客様は、二重なので、サーバーにコピーします。このように、バー型のアプローチをより需要サーバ側で接続でなければならないのでオープン懸案であったり、あるいはその理由を通知す。の挑戦がここには、だいたい、WCF実行時の処理者のお客様で実際に送信されます。もう寝ぼけのイベントが発生します。幸運にも同じ非同期パターンとして使用されたばかりのクライアント側またはサーバー側となります。しかし、大きな違い:現在 す 返さなければなり、 IAsyncResult
(そのため WaitHandle
から BeginXXX
方法は、WCF実行を待機するシグナルを基を呼び出す前に、お EndXXX
方法。
ま ない 見つかの文書の内部にMSDN以外にリンクしかし、私は初期段階で提供されると、残念ながら、そのサンプルを書き込むときの非同期サービスは以下です。とはいえ、 文龍ードを書いた作品のスケーリング、WCFサービスの非同期モデル 一時間前にお勧めしたいでチェックアウトいただけます。
加えて、私は正直できるようにしていく方法のアドバイスが実施さの非同期モデルサーバ側でき法王がにとってどのようなデータソースイベントですから。ファイルI/O?メッセージキュー?データベース?その他の所有権のあるソフトウェア独自のメールサービスだけ提供しようとしているファサード。わからないが、彼らはすべてを提供して非同期モデルの自分にできるピギーバ独自のサービスと効率的です。
更新処方箋
からといっていいのかもしれない人気の答えは、きっかけになるかもしれないといトラヴァースシティでおすすめのことを更新る最近の変化ニケーションの場になるのです。この時点である.ネットライブラリーと呼ばれ SignalR を提供することの正確な機能はどのようお勧めしの実のコミュニケーションと、サーバーにコピーします。
他のヒント
場合はサーバが発信の接続サービスのバスできimplamentの一種できます。そうすることによって、クライアント/サーバーのねばならないことは起こらない知その他の全てのものに頼るサービスのバスになります。見 .ネットサービスバス
眺めてみると良いでしょに WSDualHttpBinding
のWSDualHttpBindingを提供 同支援のためのWebサービスのプロトコル としてのWSHttpBindingが使用 二重契約します。WSDualHttpBinding サポートするだけでなくソープ安全 要するに信頼しています。この 結合の様 公URIを提供するコールバック 評価項目のサービスです。この 提供ClientBaseAddress.A 二重結合ドのIPアドレス のお客様へのサービスです。のお客様 はセキュリティ対策のために のみに接続サービスなのです。
Googleのために"WCF二重".使いことに成功しnetTcpBinding(大陸)が、なんなのか過basicHttpBinding.
してみることはできなかったが、要するに、サーバに対するサービスです。場合はサーバーかせ、ポーリングするオプション...
場合、サーバは、クライアントではない普通)において、顧客ポーリングのサーバーとしてご指定します。いては、WCF財団については、追加の操作をする。