作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道如何获得一个推送到所有客户端而不是仅一个客户端的 EventExecutor。我在手册中找到了一段文字,其中指出我可以通过 EventExecutorServiceFactory.getInstance().getEventExecutorService(String) 获取服务器端所需的功能,不幸的是,这需要用户 ID。我尝试提供空字符串或 null 但没有成功。那么如何向所有监听客户端发送事件呢?
最佳答案
在服务器端,您可以:
RemoteEventServiceServlet
(如果可以/您被允许的话);EventExecutorService
。在第一种情况下,您在 servlet 中已经有一个可用的 addEvent()
方法,在第二种情况下,您需要通过以下方式实例化执行程序服务:
EventExecutorServiceFactory factory =
EventExecutorServiceFactory.getInstance();
EventExecutorService service =
factory.getEventExecutorService(httpServletRequest)
其中 httpServletRequest
是当前的 http 请求(例如,在基于 RPC 的 servlet 中使用 getThreadLocalRequest()
检索它)。
重点是您需要定义将在其中发布事件的域。然后,您可以自由地使用 addEvent(yourDomain, yourEvent)
(从您的 servlet 或执行程序)将您的事件发送到正在监听该事件的所有可用客户端。
换句话说,事件始终会广播到在特定域上注册的所有可用客户端。如果您想将事件发送到特定客户端,请使用 DomainFactory.USER_SPECIFIC_DOMAIN
作为域。
关于java - GWTEventService 推送到所有客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17284673/
我是一名优秀的程序员,十分优秀!