2

[ウェブメソッド]が​​あります。それが行うことは、[Web メソッド] を呼び出すクライアントによってディレクトリ パスが提供されるディレクトリ内の *.dat ファイルを探すことです。

クライアントが [Web メソッド] を呼び出した時点で、コードはファイルをチェックするループに入ります。見つかった場合は、リストが返されます。また、明らかにタイムアウトすることもあり、その場合、クライアント コードはエラーをトラップし、[Web メソッド] を再度呼び出します。

別の方法として、クライアントで TCP ソケットを開くと、サーバー上の受信ソケット サービスに「here I am」が送信されます。サーバーは、クライアントが提供した基準で *.dats の存在を探します。1 つ以上のファイルが見つかった場合は、'1' が返されます。ファイルがない場合、「0」が返されます。クライアントがサーバーから「1」を受信すると、クライアント アプリは [Web メソッド] を呼び出して利用可能なリストを取得します。

コールバックに WCF を使用できることはわかっていますが、最初にこれら 2 つのオプションを明示的に確認したいと思います。

SignalR についても認識していますが、Windows 8 より前のオペレーティング システムを使用している場合、SignalR は Web ソケットではなくロング ポーリングに戻ることがわかりました。

最初の方法を実行するとサーバーに「重点」が置かれ、2番目の方法を実行すると「ストレス」が均等に分散されますが、繰り返しのTCP呼び出しが必要になることを理解できます。

私はテストを行いましたが、どちらも独自のものを保持しているようです。

どなたからのご意見もありがたく頂戴いたします。

私の目標は、速度、低メモリ消費、コードの簡単な管理、サーバーとクライアント間の疎結合です-基本的に明らかです...

ありがとう...

4

1 に答える 1