日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎么用nodejs检测网络状态?

發布時間:2024/5/14 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么用nodejs检测网络状态? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nodejs可以使用檢測因特網狀態的庫internet-available、is-online來檢查網絡狀態,其原理是檢測dns連接狀態。這兩個庫提供了超時檢測。

用nodejs檢測網絡狀態:

internet-available

這個庫檢測因特網連接狀態原理,是檢測dns連接狀態。

這里大家肯定有個疑問,使用nodejs原生模塊dns不是更簡潔嗎?

你說的沒錯,nodejs確實提供這樣的方法,但是dns原生模塊并沒有提供超時檢測。internet-available可以設置超時參數,默認是5000ms(依賴dns-socket庫實現dns超時,有興趣可以研究其源碼,這里不做展開)。

internet-available使用舉例:

var internetAvailable = require("internet-available");internetAvailable().then(function(){console.log("Internet available"); }).catch(function(){console.log("No internet"); });

如果想加入檢測次數和每次檢測超時時間,代碼如下:

var internetAvailable = require("internet-available");internetAvailable({timeout: 4000,retries: 10, }).then(function(){console.log("Internet available"); }).catch(function(){console.log("No internet"); });

internet-available默認檢測的DNS域名是google.com,如果想自定義域名,代碼如下:

var internetAvailable = require("internet-available");internetAvailable({domainName: "xxxxx.com",port: 53,host: '8.8.8.8' // 默認,國內請改成114.114.114.114 }).then(() => {console.log("Internet available"); }).catch(() => {console.log("No internet"); });

備注:8.8.8.8是谷歌公司提供的免費DNS服務器,該地址是全球通用,相對來說,更適合國外以及訪問國外網站的用戶使用,國內更適合用114.114.114.114。

?

is-online

is-online與internet-available檢測方式相同,唯一區別是is-online可以在nodejs和瀏覽器環境同時運行。在瀏覽器環境下,通過navigator.onLine返回網絡連接狀態,但與html5 online、offline事件一樣,只能檢測本地連接。

is-online使用舉例

const isOnline = require('is-online');isOnline().then(online => {if(online){console.log("We have internet");}else{console.log("Houston we have a problem");} });

此庫也提供超時設置,且可以設置Internet協議版本,這是一個通常不需要設置的高級選項,但它對于專門斷言IPv6連接非常有用,代碼如下

var isOnline = require('is-online');isOnline({timeout: 5000,version: "v4" // v4 or v6 }).then(online => {if(online){console.log("Internet available");}else{console.log("No internet");} });

?

總結

以上是生活随笔為你收集整理的怎么用nodejs检测网络状态?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。