これがシナリオです。C# - クライアントにプッシュ通知を送信するサーバーに関する設計上の質問 - 実装方法
私のアプリケーションには複数のクライアントがあり、1つのサーバーがあります。 サーバー自体がクライアントから切断され、Windowsサービス(WebサービスとFTP)を介してWebからデータをダウンロードし、データを処理し、すべてのクライアントが接続されているデータベースを更新し、データを取得します。
私はクライアントに積極的に通知することができたいと思います。ダウンロードが発生した場合(つまり、価格/取引の更新が発生した場合は唯一のトレーダー、何かがある場合はエンジニアのみ) )ポーリングなしで。
サーバーは、更新がある場合、継続して「尋ねる」のではなく、接続されたすべてのクライアントに通知する必要があります。この場合、すべてのクライアントで状態を維持する必要があるからです。
私はマトリックスでXMPPを考えました。
これを行うには、各クライアントはWindowsサービスとの永続的な接続を開く必要がありますが、これを実装する方法の詳細は不明です。ノード付き! 私が理解しているところでは、XMPPは私が達成したいことにぴったりであり、必要があればさらに機能を拡張する拡張性を与えます。
自分のサーバーを実装するか、既存のサーバーを使用するかわかりません(jabberd2には優れたWindowsサーバーがあります)。
しかし、私はWindows上で動作するXMPPサーバーと、B)C#ライブラリについての提案が必要です。マトリックスのほかに、私は非常に少数しか見つかりませんでしたが、何よりも私は通知のサポート(pubsub)が必要です。
MQを見ましたか?例:NServiceBus、RabbitMQ、ActiveMQ。これらのすべてがpubsubをサポートしており、.netクライアントを持っています – LostInComputer
IISサーバーを使用したくない理由がありますか? .NETでは、リモーティングを使用してクライアント上のリスナーを作成して、サーバーの変更を通知することができます。 – Eduard
@pebrianこれらの存在を知りませんでした。 @Eduard私はソースを開くことができるくらいスティックしていますが、ありがとう、私はそれを考慮に入れます。 – SimoneF