Node.js 中网络状态变化的事件?

Leo*_*ang 5 javascript network-programming node.js

我找到的所有解决方案都只是轮询服务。例如,他们google.com每秒ping一次以查看 Node 服务是否可以访问 Internet。

但是,我正在寻找一个更干净的基于事件的解决方案。在浏览器中,有window.ononlinewindow.onoffline。我知道这些并不完美,但它们总比没有好。

我不一定要寻找一种方法来查看 Node 服务是否在线,我只是在寻找一种方法来查看操作系统是否认为它在线。例如,如果操作系统没有连接到任何网络接口,那么它肯定是离线的。但是,如果它连接到路由器,那么我也许可以 ping google.com

Tar*_*req 0

** 更新

我认为这个模块有您正在寻找的东西,它有许多使用网络接口的有用方法。

https://www.npmjs.com/package/network

基本示例:告诉您是否已连接到网关,并返回其 IP。

*(我在我的机器上测试过)

var network = require("network");

network.get_gateway_ip(function(err, ip) {
  if (err) {
    console.log("No Gateway IP found!");
  } else {
    console.log(`Gateway IP: ${ip}`);
  }
});
Run Code Online (Sandbox Code Playgroud)