Http Java web服务器应用程序有任何推送方式吗?
Web服务器响应传入的HTTP请求。。。处理请求并返回HTTP响应。在这种体系结构中,服务器是否有向客户端推送数据的常见方法。。。e、 g请求来自client1,服务器想要通知client2?这显然可以由非web服务器使用套接字来完成,但web服务器应用程序又如何呢?它必须支持页面请求并允许推送数据。不,没有一些客户端技术(Flash、Silverlight、小程序等)Http Java web服务器应用程序有任何推送方式吗?,http,jakarta-ee,client-server,server-push,Http,Jakarta Ee,Client Server,Server Push,Web服务器响应传入的HTTP请求。。。处理请求并返回HTTP响应。在这种体系结构中,服务器是否有向客户端推送数据的常见方法。。。e、 g请求来自client1,服务器想要通知client2?这显然可以由非web服务器使用套接字来完成,但web服务器应用程序又如何呢?它必须支持页面请求并允许推送数据。不,没有一些客户端技术(Flash、Silverlight、小程序等) 不过,您可以让页面使用AJAX轮询服务器。如果您不介意等待web世界赶上这一新兴标准,您可以使用web应用程序容器,比如支持哪
不过,您可以让页面使用AJAX轮询服务器。如果您不介意等待web世界赶上这一新兴标准,您可以使用web应用程序容器,比如支持哪种。然后,您将拥有真正的双向通信,而不是HTTP+轮询或特殊插件等 那么一个必须支持页面请求并允许推送数据的web服务器应用程序呢 Servlet 3.0引入了异步支持,允许编写Comet风格的应用程序(即使用长寿命HTTP连接和长轮询或流式处理的应用程序) 如果您迫不及待地等待Servlet3.0异步支持,并且不想使用容器(如GlassFish、Jetty)提供的专有Comet或WebSocket支持,那么请看一看 另见
client2
启动到服务器的连接,然后该连接将保持打开状态以侦听通知
这不是一个很好的解决方案,首先,您需要保持大量长寿命的TCP连接,如果连接丢失,服务器将无法重新连接。它必须等待客户端返回。轮询是显而易见的答案,但如果每个客户端持续发送“他们有什么应该告诉我的更新吗?”请求,那么性能会受到多大的影响?@John-无法回答这个问题。这完全取决于您的投票频率、您有多少客户机以及处理每个请求的成本。它必须是根据应用程序的使用经验随时间调整的内容。听起来很酷,但有浏览器支持它吗?以及Jetty?Chrome以外的其他web服务器支持它。我想Firefox是的。IE可以通过一个简单的Flash代理来支持它(比AJAX和各种Comet技巧更简单)。服务器端,我不知道。Tomcat不支持它,但因为我使用Geronimo+Jetty,所以我不在乎。WebSocket不是专有的。它们是标准轨道。@justmycorrectopine:Jetty API是专有的,Resin API是专有的。因此,正如我所写,容器支持是专有的。这就是为什么会有大气。嘿,大气看起来很有趣。@JUST:你错过了一点:Java EE API中没有定义Java对WebSocket的支持。因此,您依赖于所使用的容器。然而,它确实是W3CHTML5标准。是的,我在阅读了Pascal的回复后发现了@BalusC。支持是专有的,而不是机制。