4

ある程度連携しなければならない2つのアプリケーションがあるとしましょう。

  1. Webアプリケーション(PHP、Ruby on Railsなど)
  2. デスクトップアプリケーション(Java、C ++、...)

デスクトップアプリケーションはWebアプリケーションから通知を受ける必要があり、通知の送信と受信の間の遅延は短くなければなりません。(<10秒)

これを行うための可能な方法は何ですか?10秒間隔でポーリングすることも考えられますが、多くのデスクトップアプリケーションに通知する必要がある場合は、大量のトラフィックが発生します。LANではUDPブロードキャストを使用しますが、残念ながらここでは不可能です...

あなたが私に与えることができるどんな考えにも感謝します。

4

4 に答える 4

3

私は2つの方法を見ることができます:

  • デスクトップアプリケーションがWebアプリをポーリングします
  • Webアプリがデスクトップアプリケーションに通知します

WebアプリはRSSフィードを公開できますが、デスクトップアプリは10秒ごとにフィードをポーリングする必要があります。

トラフィックは膨大である必要はありません。HTTPHEADリクエストを使用すると、最終変更日(便利な名前はLast-Modified )の小さなパケットが届きます。

于 2009-05-03T15:02:01.317 に答える
1

シンジケーションのレイヤーは、システムのスケールアウトに役立ちます。

デスクトップ アプリは、「パブリッシャー」サービス (複数または多数のマシンのいずれかで実行されている) に自身を登録できます。このパブリッシャー サービスは、何かが変更されたという Web アプリから「通知」を受信し、登録されているすべてのサブスクライバーへの通知をすぐに開始します。

必要なパブリッシャーの数は、ユーザーの数に応じて増加します。

編集:デスクトップアプリはソケットでリッスンする必要があることを忘れていました。

于 2009-05-31T08:57:07.417 に答える