如何在node.js中获取Rx/Tx字节(/packets)等网络静态信息
How to get network statics like Rx/Tx bytes(/packets) in node.js
我正在node.js中开发一个视频流应用程序。由于它可能会消耗大量的网络带宽,我想知道如何在node.js中跟踪应用程序以及整个系统本身的带宽使用情况?
所需输出示例:
此应用程序:100 kb Rx 18 mb Tx
总计:200 kb Rx 20 mb Tx
拥抱自己,因为这并不容易。
我发现的唯一一个nodejs模块应该是跟踪网络流量的,它是网络调试器。不过,我不相信你会在那个项目中找到你的问题的答案。
网络监控通常是高度特定于操作系统的:
- Windows:唯一的选项是WinPCap
- MacOS:净值。很少有linux网络实用程序端口也可以工作
- Linux:你是个幸运的人。最近,nethogs已经成为最受欢迎的网络顶级实用程序,大多数分销商都可以通过其软件包管理器获得它。请看一下这篇比较文章,了解更多关于linux网络工具的信息
是的,你是对的,它不是nodejs库,但正如你所猜测的那样,没有。部分原因可能是系统管理员总是喜欢基于控制台的一件事工具来监控他们的服务器,因此在节点中实现网络监控库的需求非常小。
实现所需:
- 选择一个可用的网络工具
- 玩一玩,看看它是否是你想要的(它们不同,所以一定要少试)
- 如果您喜欢它提供的信息,请学习如何将其输出为管道友好格式
- 现在,您需要node.js服务器以管道模式启动该工具并捕获输出
- 完成
有一篇有趣的文章非常详细地介绍了如何使用现有的基于控制台的工具在node.js中编写系统监视器,这可能会有很大的帮助。您可能必须选择其中一个基于控制台的工具,学习如何以管道友好模式启动它(这样输出就可以通过管道传输到文件或流中,直接进入node.js服务器)
或者,你可以重新发明轮子,在node.js中制作自己的网络监控工具,但我担心它最终会变成一半JavaScript,一半特定于操作系统的C或Objective-C代码。
还要注意,您需要管理员权限(windows上的sudo或管理员用户)来监控网络。这意味着您可能必须使用提升的权限运行node.js。这是一个需要牢记的额外风险。
相关文章:
- 通过Magento的网络服务检索运费
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 如何使用密码检测网络中的状态连接
- ASP.NET网络摄像头显示
- 如何在OpenERP中实现网络摄像头
- 链接两个网页或网络应用程序的最佳方式
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- RabbitMQ与通过网络的stomp适配器
- 输入文本框为空时的阻止按钮asp.网络表单
- 为网络游戏制作动画
- 无法获取vis.js最后一个或第一个选定的网络节点
- 网络语音API-再次讲话(重置句子)
- 如何建立一个网页,检查我的路由器网络接口是否可以访问
- 查找AJAX获取和发布时使用的网络数据的obsolute或可能的估计值
- 如何减少在移动网络应用程序上播放声音的延迟
- 在Android网络应用程序中查找SD卡的路径
- 如何使用神经网络和突触库来制作项目定价估计器
- JQuery和Javascript没有'在我的项目中不起作用,但在网络上起作用
- 如何在node.js中获取Rx/Tx字节(/packets)等网络静态信息