【发布时间】:2014-06-12 10:58:44
【问题描述】:
我一直在远离 PHP/MySQL 的舒适区,因为语法/封装/过程的东西可能会令人沮丧。
上周,我开始尝试并按照一些教程使用 Node.js/Socket.IO 创建一个实时聊天应用程序。到目前为止,我从未使用过 WebSockets,它们看起来真的很酷——服务器和客户端之间的即时通信非常棒。
现在,请原谅我在这里缺乏理解,但是 HTTP 的设置是为了让您不应该能够保持客户端和服务器之间的连接打开——我对 Comet 的基本理解是它强制连接到通过从不终止写入流并仅发送 NUL 字节来保持打开状态。这听起来……服务器密集型的。
那么 WebSockets 是如何工作的呢?如果我的聊天应用程序同时有几百人,服务器不会超载吗?当我在服务器上使用 PHP/MySQL 时,服务器一次只处理一个请求——如果我使用 AJAX 并每隔一秒轮询一次,我想它会迅速升级,因为你有数千个一分钟的请求数。
我的问题是,WebSockets 是否适用于大型应用程序?没有真正的高带宽服务器是否实用?
我想这归结为:AJAX 频繁轮询、Comet 和 WebSockets 之间是否存在显着的服务器负载/用户体验差异?
谢谢!
【问题讨论】: