Abd*_*rai 2 javascript php apache websocket node.js
我已经建立了一个网站PHP + Apache + JS + HTML 5
。现在有一点我必须每秒告诉用户服务器是否已连接并准备接收数据和/或互联网连接丢失/可用,或者其他任何原因可以告诉用户不要由于以下原因将数据发送到服务器服务器或Internet连接不可用。
为此,我可以Long Polling with Ajax
每秒移动一次并继续对服务器执行ping操作,但是肯定会在Apache Server上造成大量网络开销,因为我的客户端一次只能容纳成千上万的用户,因此继续ping服务器不是一个好选择。因此,我决定使用WebSockets。
我已经搜寻了大约2天,但找不到足够好的文章来回答有关WebSocket
和的3个基本问题Apache + PHP
。
1)如果与服务器建立了WebSocket连接,那么它是否像服务器的长轮询一样保持活动状态,或者它背后的机制是什么?我的意思是WebSocket如何保持与服务器的关系,是否与服务器保持轮询,因此客户端和服务器之间始终存在连接?
2)如果对上述问题的回答是“是”,那么如果我使用websockets,则服务器和服务器端的网络/ IO开销将是多少,因为客户端和服务器之间存在连续的连接。并想象一下,如果一次有成千上万的客户端在线,它将对服务器网络或IO造成什么负担?
3)在服务器上使用Apache + PHP时,使用WebSocket的最佳方法是什么?关于这方面的任何好的文章,我都可以研究如何使用WebSockets与Apache Server通信?我找到了这个问题,但是在Apache服务器上使用WebSocket不能很好地回答。在这个问题上,它限制了专家不要包含任何具有sysadmin工具的答案,而我正在询问是否需要它。
我有一台VPS服务器,因此调试和安装一些工具不是问题。
任何帮助将不胜感激。谢谢问候。
1)如果与服务器建立了WebSocket连接,那么它是否像服务器的长轮询一样保持活动状态,或者它背后的机制是什么?我的意思是WebSocket如何保持与服务器的关系,是否与服务器保持轮询,因此客户端和服务器之间始终存在连接?
是的,它保持活动状态,并且客户端和服务器之间始终存在连接。但是,客户端需要维护连接以及连接异常。在这种情况下,这是您的JavaScript代码。
2)如果对上述问题的回答是“是”,那么如果我使用websockets,则服务器和服务器端的网络/ IO开销将是多少,因为客户端和服务器之间存在连续的连接。并想象一下,如果一次有成千上万的客户端在线,它将对服务器网络或IO造成什么负担?
WebSocket连接在TCP / IP级别上进行处理,并且根据定义,当没有数据通过TCP隧道时,它们不是资源消耗操作。因此,您不必担心CPU和内存的概念,而不必担心连接数量的限制。考虑为套接字连接使用负载平衡器,如果期望并发连接超过10000个,则可以使用多个服务器。
3)在服务器上使用Apache + PHP时,使用WebSocket的最佳方法是什么?关于此的任何好的文章,我都可以研究如何使用WebSockets与Apache Server通信?我发现了这个问题,但在Apache服务器上使用WebSocket的回答并不理想。在这个问题上,它限制了专家不要包含任何具有sysadmin工具的答案,而我正在询问是否需要它。
对于您的这种用例-获取服务器的状态,我建议您使用消息代理,而不是将此简单操作加载到Apache。
请考虑看看mosquitto,hivemq或Rabbitmq
它们都支持WebSocket,并且各有利弊。在概念上做些小的证明,然后选择最适合您的方法。
归档时间: |
|
查看次数: |
474 次 |
最近记录: |