ここでの「ベストプラクティス」は、期待するデスクトップクライアントの数によって決まると思います。通知されるデスクトップが1つしかない場合、ポーリングはうまくいくかもしれません。ポーリングはイベントベースの通知よりもはるかにオーバーヘッドですが、実装するのが最も簡単な解決策になるでしょう。 、「彗星」スタイルのWebリクエストすることができた(
- は、デスクトップとWebサーバ間の持続的接続を開いてください:ポーリングのオーバーヘッドが本当に受け入れられない場合
、その後、私は2つの基本的な選択肢を参照してくださいまたはrawソケット接続)
- デスクトップアプリケーション内からサービスを公開し、サービスのアドレスをWebサーバーに登録します。このようにして、Webサーバーは必要に応じてデスクトップに呼び出すことができます。
両方の選択肢が邪魔に満ちていることに注意してください。いくつかのハイライト:
- オープン接続を維持することは難しいことができ、あなたのウェブサーバは、ホットスワップ可能な
- Webサーバから外部サービス(例えば、デスクトップ)に呼び出すようにしたいので、このリクエストがハングアップする可能性があるため、危険です。この通知を別のスレッドに移動して、Webサーバーを縛るのを避ける必要があります。
信頼性の低いデスクトップをWebサーバーから切り離すには、中間の通知サーバーを導入します。Webサーバーはどこかに更新を送信し、デスクトップはポーリング/接続/そこに登録して通知してください。ここに車輪を再創造するのを避けるために、これは何らかの種類のMessageQueueシステムを含む可能性があります...もちろん、これは新しい媒介を維持する必要性の複雑さを追加します。
また、これらのアプローチはすべてかなり複雑なので、おそらくポーリングが最良の賭けと言えます。
私の提案は納得しましたか? – Ahmy
いいえ、それは私の質問で提案したものと本質的に同じです。私はまだ何かを待っている。しかし、私はより良い解決策を得られなかった、私はあなたの答えを受け入れる:) –