簡體   English   中英

如何使用 Node.js 檢測網絡變化

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM