php - 创建聊天应用程序而无需不断使用 ajax 查询的解决方案

标签 php ajax chat

我最近需要从事一个涉及聊天的项目。这个聊天必须实时更新,估计有超过9000个用户同时使用。我对如何做到这一点做了一些研究并得出结论:使用ajax

当我研究ajax时,我发现了一个问题:

问题 1:

如果有很多用户,浏览器不断地创建ajax调用文件来获取数据库聊天内容,那不是会给服务器带来很大的压力,最终不会崩溃吗?

有很多库也许可以满足我的需求,但我想从头开始,这可能吗?

举个例子,whatsapp:如果你打开开发工具,你不会看到它进行 ajax 调用,但当我收到消息时,它也不会进行调用。另一方面,当用户收到消息时,facebook 会收到 ajax 调用。

PS:我不是在寻找代码,我只是想要一种方法来做到这一点。我可以自己编码。 (我使用 php 和 mysqli)

最佳答案

您需要使用 WebSocket:https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API

这允许浏览器与服务器保持打开的连接,以实现与服务器之间的持续通信。

另一种方法是轮询,即定期发送 ajax 请求,正如您所描述的。

来自 Mozilla 页面:

With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply.

关于php - 创建聊天应用程序而无需不断使用 ajax 查询的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65015884/

相关文章:

php - CakePHP 插件 - 如何为虚 URL 设置 Apache Rewrite

javascript - MVC3 Ajax ActionLink 在使用 TempData 完成时调用 javascript 函数

javascript - 将工作的 Ruby on Rails 表单转换为 AJAX

cordova - 在 API 端使用 Ionic 和 laravel 进行实时聊天

android - 如何使用文本和图像消息创建聊天 Activity

php - 如何将真棒字体添加到php代码中

php - 为什么这个 PDO 语句会默默地失败?

php - 如何从 SQL 动态依赖选择中获取值

ruby-on-rails - 如何在 Rails 中设置点赞按钮

c - 唯一标识套接字