[英]How to detect network changes using Node.js
如何監聽網絡連接的變化?
您知道實現此目的的任何實現或模塊嗎?
我想知道是否存在類似的東西:
reachability.on('change' function(){...});
reachability.on('connect' function(){...});
reachability.on('disconnect' function(){...});
我已經用谷歌搜索了它,但找不到任何關於它的信息。
任何幫助表示贊賞。 謝謝
node 中沒有內置這樣的功能。 您可能能夠連接到操作系統以監聽網絡接口的上升或下降,甚至以太網電纜是否被拔掉,但任何其他類型的連接丟失都將難以立即確定。
檢測死連接的最簡單方法是使用應用程序級別的 ping/心跳機制和/或某種超時。
如果網絡連接檢測不是特定於特定網絡請求,您可以執行類似的操作,通過不斷 ping 響應 ping 的連接良好的系統來全局測試網絡連接。 例子:
var EventEmitter = require('events').EventEmitter,
spawn = require('child_process').spawn,
rl = require('readline');
var RE_SUCCESS = /bytes from/i,
INTERVAL = 2, // in seconds
IP = '8.8.8.8';
var proc = spawn('ping', ['-v', '-n', '-i', INTERVAL, IP]),
rli = rl.createInterface(proc.stdout, proc.stdin),
network = new EventEmitter();
network.online = false;
rli.on('line', function(str) {
if (RE_SUCCESS.test(str)) {
if (!network.online) {
network.online = true;
network.emit('online');
}
} else if (network.online) {
network.online = false;
network.emit('offline');
}
});
// then just listen for the `online` and `offline` events ...
network.on('online', function() {
console.log('online!');
}).on('offline', function() {
console.log('offline!');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.