我正在开发一个基于 Java servlet 技术的 Web 应用程序,其中客户端页面每 2 秒通过 javascript 轮询服务器一次 AJAX 请求以获取新数据。我面临的问题是由于定期轮询多个并行客户端,服务器变得越来越慢。
那么只有在任何其他请求被触发到更新服务器上的数据的服务器之后,是否有任何其他替代方法可以自动实现此功能。
我正在尝试使用 javascript comet 但没有获得正确的实现代码。
任何帮助都是不言而喻的。
问候, Ars
我正在开发一个基于 Java servlet 技术的 Web 应用程序,其中客户端页面每 2 秒通过 javascript 轮询服务器一次 AJAX 请求以获取新数据。我面临的问题是由于定期轮询多个并行客户端,服务器变得越来越慢。
那么只有在任何其他请求被触发到更新服务器上的数据的服务器之后,是否有任何其他替代方法可以自动实现此功能。
我正在尝试使用 javascript comet 但没有获得正确的实现代码。
任何帮助都是不言而喻的。
问候, Ars
是的,Servlet 3.0 将是满足您需求的良好解决方案。
它将在您的请求执行时释放您的线程您可以在此处阅读更多信息。在下面的文章中:
http://www.javaworld.com/javaworld/jw-02-2009/jw-02-servlet3.html
另外我建议你看看Atmosphere Framework和Netty framework
如果追求快速的 Comet 实现,这些框架可以为您提供标准 Servlet 容器的不错选择。
希望能帮助到你。
显然你应该使用彗星方法。您可以尝试使用socket.io。这个协议有几个 Java 实现,比如socketio-java和netty-socketio。与使用 WebSockets 相比,您将能够覆盖更多的浏览器。
使用websockets将您的服务器与客户端连接起来。
看起来是您启动 websockets 的绝佳机会。这是为了这样的目的而制作的。 WebSocket - 维基百科
如果您还想用不同的语言编写服务器应用程序,您可以轻松地搜索该语言的 google websocket 教程来帮助您。