腹板的缺点

时间:2011-06-03 08:33:59

标签: javascript web-services websocket

我想知道使用websockets有什么样的限制。

Websockets就是这么强大。我无法想象它没有缺点。

说,可以同时连接到服务器的用户数量是多少(如果我正在创建游戏并且用户将通过WebSockets连接到游戏,那么任何时候都会限制能够连接的用户数量?)

对于每个额外的连接,连接的质量(速度和类似的东西)也会减少吗?

2 个答案:

答案 0 :(得分:36)

优点和缺点当然取决于具体的用例,但我会尝试指出WebSocket和HTTP之间的一些区别。

WebSocket比HTTP更复杂。您可以与telnet客户端建立HTTP连接,但您可能无法对WS执行相同操作。即使您忽略了握手要求(包括使用SHA1散列函数),您也无法正确屏蔽和构建要发送的数据,服务器将关闭连接。

正如Uwe所说,WebSocket连接旨在比HTTP连接更持久。如果您只想每30分钟收到一次更新,则需要使用HTTP。如果您希望每秒都接收更新,则WebSocket可能是更好的选择,因为建立HTTP连接需要花费大量时间。

要建立HTTP连接,首先必须建立TCP连接(SYN,SYN / ACK,ACK),然后发送带有相当大标头的GET请求,然后最终接收服务器的响应(以及另一个大标头) )。

使用开放的WebSocket,您只需接收响应(无需请求),并且它带有一个小得多的标头:从两个字节开始用于小帧,最多10个字节用于可笑的大帧(在千兆字节范围内)。 / p>

您需要权衡两个成本(保持连接打开与建立新连接)以决定两个协议。

注意:这个答案是基于当前的协议草案(draft-ietf-hybi-thewebsocketprotocol-09)。 WebSocket正在快速发展,许多实现仍然基于较旧的草案,并且一些细节可能在最终确定之前发生变化。

答案 1 :(得分:1)

根据我的阅读,这似乎与HTTP Server Push有关,我读到它通常不建议使用,因为它在服务器上创建了大量连接。

如果我必须选择,我可能会一直开发客户端轮询机制。