0

私はRMIとSpringsに不慣れであり、実装している機能について少し助けが必要です。

Javaを使用してチャットソフトウェアを作成しており、SpringsでRMIを使用したいと考えています。RMIServerExporter、インターフェイスなどを使用して、クライアントサーバーの相互作用をかなり簡単に設定できます。

私が頭を悩ませることができる問題は、クライアントがサーバーからのデータをプールする必要があるということです。新しいメッセージをチェックし続ける必要があります。他の理由でサーバーからデータをプッシュすることはできません。

クライアントがサーバーからのデータをプールするように、スプリングを使用してRMIを設定するにはどうすればよいですか。コールバックを調べましたが、これにはサーバーからのプッシュが含まれていました!?

これを行うために離れていますか。これについてさらに説明する必要がある場合はお知らせください

4

1 に答える 1

0

RMIは、クライアント/サーバー通信に使用される単なるトランスポートプロトコルです。クライアント側では、RmiProxyFactoryBeanがSpringコンテナーで適切に定義および初期化されたら、このサービスBeanをどこで、いつ、どのように使用するかは、完全に開発者次第です。サーバープーリングの実装では、通常、ScheduledThreadPoolExecutorを使用して、指定された時間間隔でRMI呼び出しをスケジュールします。次に例を示します。

public class ChatClient {
  // Defined and wired as RmiProxyFactoryBean in applicationContext.xml
  private ChatService chatService;

  private ScheduledExecutorService scheduleTaskService;

  ... ...

  // At some point during chat application running life cyle:
  scheduleTaskService = Executors.newScheduledThreadPool(5);

  // This schedule pooling task to run every 2 minutes:
  scheduleTaskService.scheduleAtFixedRate(new Runnable() {
    public void run() {
      // Pooling server using RMI call:
      chatService.poolingData();
    }
  }, 0, 2, TimeUnit.MINUTES);

  ... ...

}

よりエンタープライズなソリューションについては、通常Quartzを使用します。実際の例として、このブログ投稿を確認してください。

于 2012-10-18T22:30:26.063 に答える