複数のクライアント (winforms アプリ) がインターネット経由で (リモートの場所にある) サーバーに接続できるようにし、二重通信を開始して、時には大量のトラフィックを送信できるようにする必要があります。
現時点では、WCF を使用して netTcpBinding を介した二重通信を使用しており、独自の証明書を使用してトランスポート層で保護されています。これはうまくいきますが、私はいくつかのことを心配しています:
- セットアップが面倒です。各クライアントをサーバーで識別するために証明書を作成し、クライアント マシンとサーバーに各クライアントの証明書を登録する必要があります。
- 特定のポートで tcp を使用しているため、tcp を介した通信を開始できるように、その部分がクライアント側で開いていることに依存しています。一部のクライアントの場所はこれを好まない.
- 理想的には配達を保証できる必要があります
別の方法として、wsDualHttpBinding を使用して、単一の SSL 証明書を使用してセキュリティを確保し、各クライアントが何らかの識別子を送信して自分自身を識別できるようにすることを考えていました。これにより、ファイアウォールの問題が解決されますか? また、tcp ではなく http で十分なパフォーマンスが得られるでしょうか? 私が知っていることから、httpを使用すると、WCFは1つではなく2つのチャネルを作成します(httpは双方向通信をサポートしていないため)-パフォーマンスに問題が発生する可能性があるようです..
私の質問は、このソリューションの方が優れているか、またはこれを簡単にしてこれらの問題を解決できる他のソリューション (NServiceBus など) があるかどうかです。
編集
それ以来、 wsDualHttpBinding がオプションではないことを知りましたThis binding requires that the client has a public URI that provides a callback endpoint for the service
。これは私には不可能です。