WebSocket的效率取决于处理它们的Web服务器的实现和架构。与每个Ajax请求中发送的所有不同HTTP头字段和HTTP cookie相比,WebSocket是一个非常高效的协议,仅有2字节(!)的开销。通常,用于WebSocket的高效Web服务器应该是事件驱动的(请参见下面的示例)。相反,传统的Web服务器实现方式是为每个请求生成一个新线程。但线程会分配大量内存,例如每个线程256MB。因此,如果您的服务器上有1GB内存,则无法同时处理很多请求。但如果您的服务器是事件驱动的,则内存使用量几乎恒定,因为不会创建新线程。另请参见Technically why is processes in Erlang more efficient than OS threads? 您可以在WebSocket中发送任何数据。如果客户端是Web浏览器,则JSON很有效,或者可能是typed arrays。如果您的客户端是自定义应用程序,则可以使用Protocol Buffers。另请参见Google Wave Client-Server Protocol Whitepaper。你可以使用Twisted(Python)或Netty(Java)来实现高效的websocket服务器。Play Framework是一个在Netty上实现的Java和Scala高效的Web框架。另一个高效的选择是Yaws web服务器(Erlang)或Node.js + Socket.io(JavaScript)。作为应用程序开发人员,发送的数据越少,效率越高(流量越小),服务器负载越少。