websocket实现的性能比较

编辑:防止closures这个问题,我只是把它缩小到必要的。

有人可以在下面列出的两个websocket实现之间共享MB / s的性能testing吗? 应用程序或硬件细节是不相关的,只是一个简单的常见场景的两个粗略的数字就足够了。


原来的问题

有人testing了这两个websocket实现node.js的性能吗?

  • WebSocket的节点
  • WS

我最近找不到任何东西(只是2012-2013的一些文章)。 我想看到的是:

  • 开销(如果有的话,考虑到实际的networking延迟更相关,我想他们都收敛到0)
  • 吞吐量(一个简单的MB / S图相同的应用程序/硬件会很好)
  • 真的可以在networking层面上广播数据(尽pipe有底层的TCP?这是可能的吗?)还是仅仅是一个被滥用的方法名称(实际上在for()循环中向多个客户端发送相同的消息)?

更好:

  • 有/无Naglealgorithm的比较
  • JSON与二进制消息的比较

编辑:更新与更新,更快的实施信息

我整合在这里NiCk纽曼16年6月17日在20:08评论,以避免它以任何方式迷路。

uWS是一个更新,更快的websocket实现。 一些开发者报告了有希望的结果。 对于简单的情况,这几乎是一件容易的事情。 因此下面的讨论有些被取代。


我想知道为什么没人能回答这个问题。 所以,经过更长时间的search之后,我已经完成了,直到我终于来到这个页面,给出了一些答案。

我把它发布在这里,并回答我自己的问题,以便其他人寻找它更容易。

该页面是ws的基准比较 。 是的,这是非常简单的,但它被埋没了。

以下是相关结果:

在我的情况下,我想发送4-16KB的JSON消息(甚至4KB是夸张的,大多数消息将只是100-200个字符)。 第一张图显示,最多64KB没有明显的差别。 只有更大的消息(大约16MB),ws比websocket-node更快。

对于二进制消息,两者是相同的(如果不相同)。 这让我想知道他们是否以某种方式在github上借用了代码。 这将是很好的顺便说一句,因为都在Github上分享和叉,等等。

下面的图表显示了与stream媒体相关的消息碎片,但是我不感兴趣。所以上面的答案是我的问题:

  1. 对于非分段文本消息,性能是相同的(最高16MB)
  2. 性能对于非分段二进制消息是相同的(没有大小限制)