WebSockets - 一个还是多个?

时间:2012-10-06 17:43:55

标签: websocket tomcat7

我正在玩WebSockets以获得乐趣,在后端运行Tomcat。如果我想与客户端共享多个数据流,那么每个流有一个WebSocket或者通过一个共享WebSocket复用它们会更好吗?

每个流有一个WebSocket似乎更容易。我不需要客户端和服务器上的高级逻辑将所有数据汇集到一个管道中,我的数据格式不需要任何开销来指示每个帧的源/目的地。

但是在一个客户端页面上使用多个WebSockets(5-10)是否有任何缺点?

2 个答案:

答案 0 :(得分:2)

我听说过(但从未真正测试过)一些浏览器可能会限制从同一个标签/页面快速创建Websocket连接。如果这是真的,那就是阻止恶意Javascript尝试使用WebSockets进行端口扫描。但是,除此之外不应该有任何问题。

但是,由于WebSockets是基于消息的(而不是原始流),因此通过一个连接复用/解复用流量并不困难。您可以在每条消息的开头添加一个字符以指示哪个流(或者如果您要发送/接收JSON映射,则只需在每条消息中添加另一个字段)。

答案 1 :(得分:2)

如果要允许多个并发用户,则应尽量减少每个用户的连接数,因为TCP / IP服务器可以同时打开的连接数不是无限制的。 Web服务器配置中的并发连接数受操作系统限制,最后但并非最不重要的是IP协议本身的架构(只有2 ^ 16个端口)。