我一直在使用node.js中的dns模块来测试当前的网络连通性,方法是尝试以固定的时间间隔使用dns.lookup解析固定的主机名(例如google.com):
var dns = require('dns');
dns.lookup('google.com',function(err) {
console.log((err && err.code == "ENOTFOUND") ? 'No available connection' : 'Connection is available');
});
其工作良好并且可以在循环上运行以通知网络是否已丢弃。我现在需要做的是检查通过代理服务器的连接是否可用(设置将把来自本地机器的http请求转发到系留移动设备上的http代理服务器,以便使用移动网络-本地机器将需要监控移动网络的连接)。
理想情况下,我希望对代理配置使用上面的相同方法,但我不确定是否可以使用dns.lookup实现这一点
发布于 2020-11-15 00:25:34
如果要测试HTTP代理服务器,则需要发送HTTP请求,而不是DNS请求。
如果您想要一个简单快速的解决方案,您可以使用诸如is-online之类的实用程序库
const isOnline = require('is-online');
(async () => {
console.log(await isOnline());
//=> true
})();
它同时测试DNS和HTTP,我对它有很好的亲身体验。您将需要配置代理(请参阅链接中的说明)。
https://stackoverflow.com/questions/64835879
复制相似问题