1 つだけではなくすべてのクライアントにプッシュする EventExecutor を取得する方法がわかりません。EventExecutorServiceFactory.getInstance().getEventExecutorService(String)
残念ながらユーザーIDが必要なサーバー側で必要な機能を取得できると述べているマニュアルの文章を見つけました。空の文字列または null を指定しようとしましたが、成功しませんでした。では、リッスンしているすべてのクライアントにイベントを送信するにはどうすればよいでしょうか。
1029 次
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
ドメインとして使用します。
于 2013-06-25T09:30:09.433 に答える