gpt4 book ai didi

java - 服务器推送好还是客户端推送好?

转载 作者:行者123 更新时间:2023-12-01 05:57:17 24 4
gpt4 key购买 nike

我正在使用 jsp/servlet 开发一个聊天网站。我将在 gooogle appengine 上托管我的网站。现在我对是否使用服务器推送或客户端拉取技术有一些疑问

1)如果我使用服务器推送并且不关闭servlet的响应,会导致服务器变慢吗?如果我在整个聊天 session 中保持套接字打开,tyicall tomcat服务器可以处理多少个同时连接2 个客户之间??

2)服务器推送好还是客户端推送好?

最佳答案

如果您使用的是 servlet(3.0 之前的版本),那么由于 servlet 的编程模型,我猜您将不得不使用pull。然而,使用推送模型有很多优点。主要是服务器负载的浪费和延迟的限制。这就是为什么有诸如 comet 之类的技术。 。 Servlet 3.0 also supports push model 。这些通常用于基于 ajax 的应用程序中。

事实上,我认为推送模型更适合聊天应用程序。因为它可以提供快速响应时间(=更好的用户体验)。

如果您使用基于 nio 的推送模型实现,您可以支持数千甚至超过 10k 的并发连接(显然,您的连接数有所不同)。

如果您使用传统的基于 IO 的实现,它可能会在数百个并发连接的范围内(不过不要太认真地对待这个估计。我只是给出这些数字来给出一个非常非常粗略的感觉)。

至于tomcat,我上次检查时,人们说它要到7.0版本才会有良好的推送模型支持。但我没有关注当前的状态,所以我不确定(抱歉,也许其他人可以帮助你)。如果是这种情况,您可能需要查看 jetty 的 Comet 支持。

grizzlynetty 也是不错的基于 NIO 的网络框架,但是如果你想使用 JSP,并且发现 tomcat 不够用,我猜 jetty 会是最好的选择最好的选择。

编辑:(一些附加信息)在这种“推送模型”中,服务器并不打开与客户端的连接。连接将保持 Activity 状态,服务器将根据需要推送消息。

此外,并不是只有“推”和“拉”模型。您可以采用混合方式,例如长轮询。

关于java - 服务器推送好还是客户端推送好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2490374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com