用于通知客户端服务器端事件的java cometd模式是什么?

时间:2011-06-22 21:52:10

标签: java push cometd bayeux

我很难理解一种在不浪费线程的情况下通知客户的有效方法。当客户端连接到CometD servlet时,我想开始监视客户端的服务器端事件,并在客户端可用时将它们发布到客户端。这应该在线程池或不使用servlet线程的东西中完成。我看到的所有示例都是客户端发起的事件和服务器上的侦听器。我需要反...我只是将Client / ServerSession对象交给我自己的机器吗?这似乎是一种常见的模式,但我找不到任何例子。

1 个答案:

答案 0 :(得分:0)

查看Servlet 3.0异步API。特别是,ServletRequest.startAsync()将返回一个AsyncContext对象,您可以将其“移交给自己的机器”,然后从您的servlet doGet()/ doPost()/等返回。没有终止连接。

然后有各种模式将数据发送回客户端。我相信你的“自己的机器”只能从ServletResponse获取AsyncContext并写入它。另一种方法是在dispatch()上调用AsyncContext,这将导致再次调用doGet()/ doPost()方法。

相关问题