【发布时间】:2017-12-22 01:25:17
【问题描述】:
我用PHP + Apache + JS + HTML 5 建立了一个网站。现在有一点我必须每秒告诉用户服务器是否已连接并准备好接收数据和/或互联网连接丢失/可用或其他任何可以告诉用户不要将数据发送到服务器的原因服务器或互联网连接不可用。
为此,我可以转移到Long Polling with Ajax 并保持每秒 ping 我的服务器,但这肯定会在我的 Apache 服务器上造成大量的网络开销,我的客户端一次大约有数万人,所以请继续 ping服务器不是一个好的选择。因此,我决定使用 WebSockets。
我在谷歌上搜索了大约 2 天,但找不到足够好的文章来回答我关于 WebSocket 和 Apache + PHP 的 3 个基本问题。
1) 如果一旦与服务器建立 WebSocket 连接,那么它是否像与服务器的长轮询一样保持活动状态,或者它背后的机制是什么?我的意思是 WebSocket 如何保持与服务器的关系,它是否一直与服务器轮询,因此客户端和服务器之间总是存在连接?
2) 如果您对上述问题的回答是肯定的,那么如果我使用 websockets,那么服务器端的网络/IO 开销将是多少,因为客户端和服务器之间存在连续连接。想象一下,如果一次有数十万客户端在线,它将在服务器网络或 IO 上产生什么负载?
3) 在服务器上使用 Apache + PHP 时使用 WebSockets 的最佳方法是什么?关于这方面的任何好文章,我可以研究如何使用 WebSockets 与 Apache 服务器进行通信?我找到了这个问题,但它没有很好地回答Using WebSocket on Apache server。在这个问题中,它限制专家不包括任何具有系统管理工具的答案,而我在需要时要求它。
我有一个 VPS 服务器,所以调整和安装一些工具不是问题。
任何帮助将不胜感激。感谢您的问候。
【问题讨论】:
-
投反对票的也请说明原因?
标签: javascript php node.js apache websocket