如何获取node.js中的Rx / Tx字节(/包)等网络静态

时间:2014-09-05 09:11:43

标签: javascript node.js

我正在开发node.js中的视频流应用。由于它可能消耗大量的网络带宽,我想知道如何在 node.js 中跟踪应用程序的带宽使用情况以及整个系统本身?

所需输出的示例:

此应用程序:100 kb Rx 18 mb Tx

总计:200 kb Rx 20 mb Tx

1 个答案:

答案 0 :(得分:3)

拥抱自己,因为它不会那么容易。

只有我认为跟踪网络流量的nodejs模块是network-debugger。我很少相信你会在那个项目中找到你问题的答案。

网络监控通常是特定于操作系统的:

  • Windows:只有选项是WinPCap
  • MacOS:nettop。很少有Linux网络实用程序端口也可以工作。
  • Linux:你是幸运的人。最近nethogs一直是最受欢迎的网络顶级实用程序,大多数经销商都可以通过他们的包管理器获得。请查看此比较article以了解有关linux网络工具的更多信息。

是的,你是对的,它不是一个nodejs库,但正如你猜测的那样,没有一个。部分原因可能是因为系统管理员总是首选基于控制台的单件工具来监控他们的服务器,因此在节点中实现网络监控库的需求很少。


达到理想目标:

  1. 选择一种可用的网络工具。
  2. 玩弄它,看它是不是你想要的(它们是不同的,所以一定要试一试)。
  3. 如果您喜欢它提供的信息,请了解如何将其输出为适合管道的格式。
  4. 现在您需要node.js服务器以管道模式启动该工具并捕获输出。
  5. 完成。
  6. 关于如何使用现有的基于控制台的工具在node.js中编码系统监视器,有一个非常有趣的article,可能会有很大的帮助。  您可能必须选择其中一个基于控制台的工具,了解如何以管道友好模式启动它(以便输出可以通过管道传输到文件或流到您的node.js服务器中)


    或者,您可以重新发明轮子并在node.js中创建自己的网络监视工具,但我担心它最终将成为C或Objective-C中的一半JavaScript,一半操作系统特定代码。

    另请注意,您需要管理员权限(Windows上的sudo或admin用户)来监控网络。这意味着您可能必须以提升的权限运行node.js.要记住这是一个额外的风险。