問題タブ [duplex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
silverlight - Duplex + Silverlight + WCF + データのプル
かなり長い間探していましたが、Silverlight (pollingHttpDuplex) の二重接続を介してデータをプルする方法をカバーするものは実際には見つかりませんでした。
デュプレックスで基本的なサブ/パブ アプリケーションをセットアップしました。
ここで、ユーザーが接続しているトピックのリストを取得したいと考えました。私が最初に考えたのは、単純な DataContract (TopicName フィールドが 1 つだけ) をセットアップし、現在のトピックを保存するために使用してきた Dicionary からデータを取得することでした。だから私はこのようなものになります:
ここで何か間違ったことをしています。大きな問題は、これをクライアント (Silverlight 4) に送信し、コントロールにバインドする方法です。
また、アプリケーションには二重化が不可欠です。他のものに変更することはオプションではありません。
wcf - WCF Duplex Service から Silverlight クライアントにデータ (SQL または LINQ) をプッシュする方法
いくつかの新しいことを学ぶために簡単なチャット アプリケーションを作成しました。今やりたいことは、現在チャットにログインしているユーザー リストを追加することです。だから私はこれをしました:
User に対応する DataConctract もあります。ともかく。このメソッドは、ディクショナリに存在するすべてのユーザーを取得し、それらを ObservableCollection に入れます。
私がやりたいことは、データが変更された場合 (ユーザーがログまたはログアウトした場合)、このコレクションからユーザーにデータをプッシュすることです。
これまでのところ、呼び出してサーバーからデータを手動でプルすることしかできませんでした
手動で。Silverlight アプリでボタンを押すトラフ。しかし、それは、新しいデータがあるかどうかを確認するサーバーへの定期的な呼び出しをユーザー (またはクライアント アプリ) に強制するために、二重接続を使用している理由ではありません。サーバーが新しいデータをクライアントにプッシュしたい。
そして、ここにサービス契約があります。正直なところ、これが関連しているかどうかはよくわかりませんが、念のため投稿します。
wcf - エンタープライズ シナリオでのプロキシ経由の二重 WCF 接続に TCP トンネルを使用する
WPF で構築されたシック クライアントと WCF で構築されたサーバーを利用する、まだリリースされていないエンタープライズ レベルの LOB アプリケーションの 1 つの機能に二重契約を使用しています。
これまでの開発中、最高のパフォーマンスを得るために net.tcp バインディングを使用してきました。展開が近づき、Web プロキシを介したインターネット アクセスなどの問題が明らかになった今、net.tcp はもはや適切ではありません。
wsHttp と wsDualHttp の使用を開始しましたが、Web プロキシ (および NAT トラバーサル) を介した二重接続は実際には不可能であることに気付きました。
今考えているのは、(HTTP CONNECT を使用して、Web プロキシをサポートする独自のソフトウェアを使用して) TCP トンネルをセットアップし、両方の長所、プロキシ サポート、速度、およびセキュリティを活用できないのはなぜですか?
windows - Http.sys は全二重通信をサポートしていますか?
これは可能ですか?特定の要求に対する応答を提供するために http.sys によって使用される基になるソケットにアクセスできますか。ポート 80 で http プロトコルを介した全二重通信をサポートできるようにしたいと考えています。
現在のリクエストに対して確立されたソケットを取得し、それを全二重通信用に保持する方法はありますか?
私の使用例は Web ソケットです。Web ソケットのハンドシェイクは実際には有効な http 要求であり、アップグレードのために Web サーバーを再利用したいと考えています。クライアント マシンで別のポートが開かれていない可能性があるため、ポート 80 が不可欠です。
任意の代替案をいただければ幸いです。
wcf - WCF - 指定された時間タスクを遅らせる方法は?
Silverlight クライアント用の WCF WebService があります。
クライアントが「建物を作る」をクリックしたとしましょう。
サービスは、アクションを実行する (データベースに追加する) 準備が整うまで、新しいタスクと星のカウント時間を受け取ります。
時間 - タスクを完了するのに必要な時間 (建物の建設など)。
ポイントは、タスクを一定時間遅らせる方法です。
また、サーバーからクライアントに時間をストリーミングする方法はありますか? 私はこれをセットアップしました:
IDuplexClient:
そしてクライアント側:
それは働いています..最初の実行のために。でも、時間はリフレッシュされません。それは私が望んでいることではありません。同様に、ブラウザで数回強制的に更新した後、時間がまったく表示されなくなります。
それがクライアントコード全体です。私は最終的に修正し、時間はクライアントに適切にストリーミングされています(少なくとも今のところ、 foreach を while(true) ステートメントで囲むだけで十分だったので、驚くほど簡単でした)。
しかし、反対側に。ブラウザを閉じて再度開くと、何も表示されません。リフレッシュした後も、時間がまったく表示されません。
wcf - JavaScript を使用して WCF WSDualHttpBinding をサブスクライブできますか?
データをプッシュする必要がある Web サイトがあります。残念ながら、HTML 5 WebSockets (クライアントが HTML5 ブラウザーを持っていることを保証できません) と Comet (私は Java/Tomcat を使用していません) を使用する以外に、他の方法を知りません。
私は、この特定のプロジェクトでサーバー側の ASP.NET を使用することはあまり好きではなく、ASP.NET MVC などを使用することを好みます。JavaScript を双方向サービスと結びつけることは可能ですか?
.net - WCF サービスと .net 2.0 Windows アプリケーションの間で二重通信を行うことは可能ですか? もしそうなら、どのように?
かなり自明です。何かが起こった場合にクライアント アプリに通知するサービスが必要ですが、アプリは .net 2.0 にあり、この機能のためだけにアップグレードするのは嫌です。
WCF サービスと .net 2.0 アプリの間で二重通信を行うことは可能ですか?
silverlight - コントラクトにはデュプレックスが必要ですが、バインディング'BasicHttpBinding'はそれをサポートしていないか、サポートするように適切に構成されていません
チャットアプリケーションを構築するために、このチュートリアルに従いました。サービスの参照を追加しようとすると、次のエラーが発生します。
コントラクトにはデュプレックスが必要ですが、バインディング'BasicHttpBinding'はそれをサポートしていないか、サポートするように適切に構成されていません。
私のweb.configは次のとおりです。
silverlight - ポーリングもソケットも使用せずに Silverlight クライアントにデータをプッシュする方法はありますか?
SL 4.0 クライアントにポーリングせずに (ボンネットの下であっても)、ソケットを使用せずにデータをプッシュする方法があることをご存知ですか?
ありがとう!
c# - WCF 例外の処理方法 (コード付きの統合リスト)
SOでこの回答を拡張して、WCFクライアントが一時的なネットワーク障害で再試行し、認証の有効期限などの再試行が必要な他の状況を処理しようとしています。
質問:
処理する必要がある WCF 例外は何ですか?また、それらを処理する正しい方法は何ですか?
以下に、代わりに、または追加して見たいと思っているいくつかのサンプル テクニックを示しますproxy.abort()
。
- 再試行する前に X 秒遅らせる
- New() WCF クライアントを閉じて再作成します。古いものは処分してください。
- このエラーを再試行して再スローしないでください
- N 回再試行してからスローする
すべての例外またはそれらを解決する方法を 1 人の人物が知っているとは考えにくいため、知っていることを共有してください。以下のコード サンプルに回答とアプローチをまとめます。