Ale*_*der 15 javascript networking websocket
我已经阅读了很多我可以在WebSockets上找到的指南和教程,但其中没有一本已经介绍了如何有效地使用它们.
有没有人有任何关于如何做到这一点的指南?我担心单个连接可能占用的带宽量,特别是当应用程序打开了连接的趋势时.
Jon*_*nas 26
WebSocket的效率取决于处理它们的Web服务器的实现和体系结构.WebSocket是一种非常有效的协议,只有2字节(!)开销,与每个Ajax请求中发送的所有不同HTTP头字段和HTTP cookie相比.
通常,websockets的高效web服务器应该是事件驱动的(参见下面的示例).相反,实现Web服务器的传统方法是每个请求生成一个新线程.但是线程分配了很多内存,例如每个线程256MB.因此,如果服务器上有1GB内存,则无法同时处理很多请求.但是如果你的服务器是事件驱动的,你的内存使用率几乎是不变的,因为没有创建新的线程.另请参见技术上,为什么Erlang中的进程比OS线程更有效?
您可以在WebSockets中发送任何数据.如果客户端是Web浏览器或类型化数组,则JSON是高效的.如果您的客户端是自定义应用程序,则可以使用Protocol Buffers.另请参阅Google Wave客户端 - 服务器协议白皮书
您可以使用Twisted(Python)或Netty(Java)实现高效的websocket服务器.Play Framework是一个高效的Web框架,用于在Netty上实现的Java和Scala.另一种有效的替代方案是Yaws web服务器(Erlang)或Node.js + Socket.io(JavaScript).
作为应用程序开发人员,发送的数据越少,效率越高(流量越少),服务器负载越少.
| 归档时间: |
|
| 查看次数: |
5280 次 |
| 最近记录: |