2014-09-05 26 views
2

我正在開發node.js中的視頻流應用程序。由於它可能會消耗大量的網絡帶寬,因此我想了解如何在node.js中跟蹤應用程序的帶寬使用情況以及整個系統本身?期望的輸出的如何在node.js中獲得像Rx/Tx字節(/數據包)這樣的網絡靜態數據

實施例:

此應用:100 KB的Rx 18 MB的Tx

總計:200 KB的Rx 20 MB的Tx

+0

您是否想計算您的應用程序的Rx/Tx或系統範圍? – alandarev 2014-09-05 09:27:28

+0

這兩個系統以及應用程序的。 – parmar7725274 2014-09-05 09:31:13

+0

什麼平臺?或者你需要它來處理所有問題? (unix/linux/windows/mac) – alandarev 2014-09-05 09:35:24

回答

3

擁抱自己的,因爲它不會是任何容易。

只有我認爲跟蹤網絡流量的nodejs模塊是network-debugger。我很少相信你會在那個項目中找到你的問題的答案。

網絡監控通常都具有很高OS具體:

  • 的Windows:唯一的選擇就是WinPcap的
  • 的MacOS:上網機。很少有Linux網絡實用程序端口也可以工作。
  • Linux:你是幸運的人。最近nethogs一直是最受歡迎的網絡頂端實用程序,並通過其包管理器在大多數分銷商中可用。請看看這個比較article瞭解更多關於linux網絡工具。

是的,你是正確的,它不是一個圖書館的NodeJS,但你猜沒有一個。部分原因可能是因爲系統管理員總是偏好基於控制檯的單件工具來監視他們的服務器,因此在節點中實現網絡監視庫的需求非常少。


爲了達到理想的:

  1. 選擇的可用的網絡工具之一。
  2. 玩弄它,看看它是你想要的(它們是不同的,所以一定要嘗試幾個)。
  3. 如果您喜歡它提供的信息,請了解如何將其輸出爲管道友好的格式。
  4. 現在你需要你的node.js服務器來啓動管道模式的工具並捕獲輸出。
  5. 完成。

關於如何使用現有的基於控制檯的工具對node.js中的系統監視器進行編碼,有一個有趣的article,可能會有很大的幫助。 您可能需要選擇那些基於控制檯的工具之一,學習如何啓動它在管型模式(使輸出可以通過管道輸送到一個文件或流到您的權利的node.js服務器)


或者,您可以重新發明輪子並在節點中創建自己的網絡監視工具。js,但我擔心它最終會成爲C或Objective-C中的一半JavaScript,一半操作系統特定的代碼。

另請注意,您需要管理權限(Windows上的sudo或admin用戶)來監視網絡。這意味着您可能需要使用提升的權限運行node.js。記住這是一個額外的風險。

相關問題