5

我今天给自己设定了一个挑战,要在半小时内编写一个 jQuery 聊天。最终我花了40分钟。

但是,我想改进它,这样服务器和浏览器上的负载就不会太可怕了。

当前,用户在文本框中输入内容,按回车键,此数据将发送到 .php 文件,该文件更新 mySQL 表并输出表上的所有行。

如果有人在没有用户按下回车的情况下说出任何内容,则每两秒在 div 上设置一个间隔来更新。

我只是想知道如何以更好的方式或最有效的方式执行此操作。我想了解使用的最佳技术及其原因。

感谢您的所有输入,我喜欢堆栈溢出,它对我来说非常宝贵。

4

1 回答 1

2

对带有“php back”/“javascript front”技术堆栈的聊天应用程序使用 ajax 轮询将不可避免地导致服务器负载过重。Http 并不是为这种通信而设计的,如果您使用的是 apache(我假设),那么每个请求的开销都会非常大。

正如一些评论所指出的,您可以使用全栈javascript框架(即后端的Node.js )进行调查。

当我的任务是使用 php 后端和 Javascript 前端(使用定期 ajax 轮询)加速现有的聊天应用程序时,我最终使用了第 3 方服务器端产品来处理轻量级XMPP请求。这个服务器端产品是OpenFire,但您可以使用eJabberd以获得更好的性能 - 虽然 OpenFire 更易于设置和维护。结果非常令人满意,服务器负载显着下降,消息立即传递给大约 1000 名在线聊天的用户(在性能低于平均水平的专用 linux 机器上)。

很难解释 SO 答案范围内的所有微小细节,但幸运的是 Ben Werdmuller @IBM 特意写了一篇关于这个主题的精彩教程。

于 2012-08-01T17:32:07.483 回答