从另一个servlet获取Primefaces EventBus



我正在使用Primefaces Websocket功能;它是使用Atmosphere框架实现的。

我在我的webapp中定义了两个servlet:第一个用于前端(我使用Primefaces和websocket功能(,第二个用于API功能(我使用Jersey和JAXRS功能(。

我需要做的是:当请求被发布到资源(使用API servlet(时,我需要使用websockets向所有连接的客户端发送消息。

在第二个servlet上,在拦截post请求的方法中,我尝试了这个解决方案:

EventBus eventBus = EventBusFactory.getDefault().eventBus();
    eventBus.publish("subscriber/*", "This message is for all connected clients, through websockets");

它不起作用,似乎EventBusFactory提供的EventBus实例与连接所有用户的实例不同。消息未广播。

这怎么可能?

如果我尝试从第一个servlet广播消息,就像客户端使用websocket一样,所有这些都能正常工作。

我已经解决了这个问题。只需使用

EventBus eventBus = EventBusFactory.getDefault().eventBus();
    eventBus.publish("subscriber/*", "This message is for all connected clients, through websockets");

将解析第二个servlet上的CCD_ 3。我犯了一个语法错误,所以第二个servlet没有正确解析EventBus

因此,要小心编写正确的订阅者主题,在我的案例中是"subscriber/*",以便拦截在第三方servlet中创建的所有端点。

相关内容

  • 没有找到相关文章

最新更新