在不使用 ajax 不断查询的情况下创建聊天应用程序的解决方案
Solutions for creating a chat application without constantly querying with ajax
我最近需要处理一个涉及聊天的项目。此聊天必须实时更新,估计有 9000 多个用户同时使用。我已经对如何做到这一点进行了一些研究并得出结论:使用 ajax
在研究ajax时,我发现了一个问题:
问题一:
如果有很多用户,浏览器不断创建 ajax 调用一个文件来获取数据库聊天内容,这不会给服务器带来很大压力,最终不会'它不会崩溃吗?
外面有很多库也许可以满足我的需求,但我想从头开始,有可能吗?
举个例子,whatsapp:如果你打开开发工具,你不会看到它在进行 ajax 调用,但是当我收到消息时,它也不会进行调用。另一方面,Facebook 会在用户收到消息时接到 ajax 电话。
PS:我不是在找代码,我只是想要一种方法。我可以自己编码。 (我在 mysqli 中使用 php)
您需要使用 WebSockets: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.
我最近需要处理一个涉及聊天的项目。此聊天必须实时更新,估计有 9000 多个用户同时使用。我已经对如何做到这一点进行了一些研究并得出结论:使用 ajax
在研究ajax时,我发现了一个问题:
问题一:
如果有很多用户,浏览器不断创建 ajax 调用一个文件来获取数据库聊天内容,这不会给服务器带来很大压力,最终不会'它不会崩溃吗?
外面有很多库也许可以满足我的需求,但我想从头开始,有可能吗?
举个例子,whatsapp:如果你打开开发工具,你不会看到它在进行 ajax 调用,但是当我收到消息时,它也不会进行调用。另一方面,Facebook 会在用户收到消息时接到 ajax 电话。
PS:我不是在找代码,我只是想要一种方法。我可以自己编码。 (我在 mysqli 中使用 php)
您需要使用 WebSockets: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.