websocket实现的性能比较

Performance comparison of websocket implementations

编辑: 为了防止关闭这个问题,我将把它缩小到基本问题。

Can someone share a performance test in MB/s between the two websocket implementations listed below? Application or hardware details are irrelevant, just two crude numbers for a simple common scenario will suffice.


原题

是否有人针对 node.js 测试了这两个 websocket 实现的性能?

我找不到最近的任何内容(只有 2012-2013 年的一堆文章)。我想看到的是:

更好:

编辑:更新了有关更新、更快实施的信息

我在这里整合 NiCk Newman2016 年 6 月 17 日在 20:08 的评论以避免它丢失任何方式。

更新更快的 websockets 实现是 uWS。一些开发人员报告了有希望的结果。对于简单的情况,这几乎是显而易见的。因此,下面的讨论在某种程度上被取代了。


我想知道为什么没人能回答这个问题。因此,经过更多小时的搜索之后,我终于来到了这个给出了一些答案的页面。

我post在这里回答我自己的问题,以便其他人搜索它更容易。

页面是benchmark comparison of ws。是的,它非常简单,但不知何故被掩埋了。

相关结果如下:

在我的例子中,我想发送 4-16KB JSON 的消息(即使 4KB 也有点夸张,大多数消息只有 100-200 个字符)。第一张图显示,对于高达 64KB 的数据,根本没有明显的差异。仅对于较大的消息(大约 16MB),ws 比 websocket-node 更快变得越来越明显。

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

下图显示了消息碎片,这与流式传输有关,但我对此不感兴趣。所以以上回答了我的问题:

  1. performance is identical for non-fragmented text messages (up to 16MB)
  2. performance is identical for non-fragmented binary messages (no size limit)