我最近需要从事一个涉及聊天的项目。这个聊天必须实时更新,估计有超过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/