Überprüfen Sie die Internetverbindung in NodeJs
Installiert NodeJS auf dem Raspberry Pi, gibt es eine Möglichkeit zu überprüfen, ob der rPi mit dem internet verbunden ist über NodeJs ?
InformationsquelleAutor der Frage Donald Derek | 2013-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine schnelle und schmutzige Art und Weise ist, zu überprüfen, ob Knoten auflösen kann
www.google.com
:Dies ist nicht die gesamte absolute Sicherheit, da Ihre RaspPi angeschlossen werden können, um das Internet noch nicht lösen
www.google.com
für einige Grund, und Sie möchten vielleicht auch zu prüfenerr.type
zu unterscheiden zwischen 'nicht lösen' und 'kann keine Verbindung zu einem nameserver, so dass die Verbindung möglicherweise nach unten').InformationsquelleAutor der Antwort robertklep
Während robertklep ' s Lösung funktioniert, es ist bei weitem nicht die beste Wahl für diese. Es dauert etwa 3 Minuten für
dns.resolve
auf timeout und gibt einen Fehler aus, wenn Sie nicht über eine internet-Verbindung, währenddns.lookup
reagiert fast sofort mit der FehlermeldungENOTFOUND
.Also ich habe diese Funktion:
Dies ist bei weitem der Schnellste Weg, um überprüfen Sie die Internetkonnektivität und er vermeidet alle Fehler, die nicht im Zusammenhang mit internet-Konnektivität.
InformationsquelleAutor der Antwort Jaruba
Musste ich etwas bauen, ähnlich wie in einem NodeJS-app vor einiger Zeit. Wie ich es Tat, war es zum ersten Einsatz der networkInterfaces() Funktion ist das OS-Modul und prüfen Sie dann, ob eine oder mehrere Schnittstellen haben eine nicht-interne IP.
Wenn das wahr war, dann verwendete ich exec() starten Sie ping mit einer gut-definierten server (ich mag die Google-DNS-Server). Durch die überprüfung der Rückgabewert von exec(), ich weiß, wenn ping war erfolgreich oder nicht. Ich angepasst die Anzahl der pings, basierend auf die Art der Schnittstelle. "Forking" ein Prozess stellt ein gewisser Aufwand, aber da dieser test wird nicht durchgeführt, zu oft in meiner app, ich kann es sich leisten. Auch mit dem Befehl ping und die IP-Adressen, die Sie nicht von DNS abhängig sind, der konfiguriert wird. Hier ist ein Beispiel:
InformationsquelleAutor der Antwort Kristian Evensen
Es ist nicht so narrensicher wie möglich, aber den job zu erledigen:
verwenden nur einen einfachen
if(err)
Sie und behandeln Sie die Reaktion angemessen. 🙂ps.: Bitte nicht die Mühe mir zu sagen 8.8.8.8 ist nicht ein name aufgelöst werden, es ist nur ein lookup für eine hochverfügbare dns-server von google. Die Absicht ist, die Konnektivität zu überprüfen, nicht die Namensauflösung.
InformationsquelleAutor der Antwort Caio Wilson