0

1 つだけではなくすべてのクライアントにプッシュする EventExecutor を取得する方法がわかりません。EventExecutorServiceFactory.getInstance().getEventExecutorService(String)残念ながらユーザーIDが必要なサーバー側で必要な機能を取得できると述べているマニュアルの文章を見つけました。空の文字列または null を指定しようとしましたが、成功しませんでした。では、リッスンしているすべてのクライアントにイベントを送信するにはどうすればよいでしょうか。

4

1 に答える 1

1

サーバー側では、次のいずれかを実行できます。

  • 延長しRemoteEventServiceServletます(できる場合/許可されている場合)。
  • インプロセスを使用しますEventExecutorService

最初のケースでは、すでにaddEvent()サーブレットでメソッドを使用できます。2 番目のケースでは、次の方法でエグゼキュータ サービスをインスタンス化する必要があります。

EventExecutorServiceFactory factory =
    EventExecutorServiceFactory.getInstance();
EventExecutorService service =
    factory.getEventExecutorService(httpServletRequest)

httpServletRequest現在の http 要求はどこにありますか (たとえば、 getThreadLocalRequest()RPC ベースのサーブレットを使用して取得します)。

ポイントは、イベントが公開されるドメインを定義する必要があるということです。次に、(サーブレットまたはエグゼキューターから)自由に使用addEvent(yourDomain, yourEvent)して、そのようなイベントをリッスンしているすべての利用可能なクライアントにイベントを送信できます。

つまり、イベントは、特定のドメインに登録されている利用可能なすべてのクライアントに常にブロードキャストされます。イベントを特定のクライアントに送信する場合は、DomainFactory.USER_SPECIFIC_DOMAINドメインとして使用します。

PSグループまたはフォーラムに直接問い合わせると、おそらくより多くの可視性が得られるでしょう。

于 2013-06-25T09:30:09.433 に答える