我正在开发一个简单的通知服务,该服务将用于向浏览网站的用户传递消息。通知不必实时发送,但是如果通知发生的频率比每5分钟说一次的频率高,则可能会带来更好的用户体验。向客户端发送和从客户端发送的数据不是很大,这是直接检索数据的数据库查询。
在阅读有关该主题的其他对话时,似乎会发现AJAX推送会导致更高的服务器负载。由于我可以忍受更长的服务器延迟,因此值得让服务器推送通知或进行简单轮询。
实施推送方案并不难,所以我想我会明白这里的想法。
谢谢你的帮助。
编辑:我研究了一个简单的AJAX Push,并根据Mike Purvis的这篇文章实现了一个简单的演示。初始版本的客户端负载相当低,约为5k,并且预计将在相当长的时间内保持这种状态。
谢谢大家的答复。我决定采用轮询解决方案,但将其全部包装在实用程序库中,这样,如果他们以后想更改它,就更容易了。
因为使用推送要求在服务器和每个客户端之间维护开放的HTTP连接,所以我也要进行轮询- 不仅要消耗大量服务器资源,而且要花很多时间才能解决如提到的亚光b那样实施。
我在轮询方面的经验是,如果在足够繁忙的站点上有足够频繁的轮询间隔,则Web服务器日志可能很快就会被真正的轮询请求所淹没。
编辑(2017) :我想说你现在的选择是在websocket和长轮询之间(在另一个答案中提到)。听起来很长轮询可能是正确的选择,这取决于问题提到不需要实时接收通知的方式,很少的轮询时间很容易实现,并且不会对服务器造成很大的负担。Websocket很酷,如今对于许多应用程序来说都是不错的选择,但是听起来在这种情况下可能会显得过大。