如何改进聊天应用程序以减少服务器的负担?

How do I improve a chat application to be less taxing for the server

本文关键字:服务器 负担 何改进 聊天 应用程序      更新时间:2023-09-26

不久前,我用python构建了一个小应用程序,允许用户创建小型聊天室。我将服务器实现为一个rest API。客户机发出请求,服务器给出适当的响应。响应由JavaScript客户端接收,该客户端继续向服务器发出后续请求以获取更新的数据。目前客户端每3秒发送一个请求。我希望我的应用程序是实时的(更新出现一旦更改),为了发生这种情况,我将不得不进一步缩小请求间隔到0.7秒左右。这种方法的问题在于它不是完全可伸缩的。当发生更新时,服务器是否有办法向客户端发送数据?

您可以让服务器向客户端推送数据,而不是让客户端向服务器拉取数据。最常用的协议是WebSockets(它与标准HTTP协议非常接近)。WebSockets是一个不断发展的标准,并不是所有的浏览器都支持它。

另外,如果你在网络边缘使用反向代理服务器,不是所有的反向代理服务器都支持WebSockets,这也可能阻止你使用WebSockets。

见:http://en.wikipedia.org/wiki/WebSocket