Utilitas TCP Ping dengan API sinkron
⌛⇄
npm i tcp-ping-sync Perpustakaan memperlihatkan dua metode, ping dan probe :
const { ping , probe } = require ( 'tcp-ping-sync' ) ;
const response = ping ( { host : 'google.com' , port : 443 } ) ;
console . log ( response ) ;
// {
// results: [
// { seq: 0, time: 126.462211 },
// { seq: 1, time: 113.164184 },
// { seq: 2, time: 132.048925 },
// { seq: 3, time: 148.315887 },
// { seq: 4, time: 137.088763 },
// { seq: 5, time: 105.050291 },
// { seq: 6, time: 105.028794 },
// { seq: 7, time: 109.297229 },
// { seq: 8, time: 102.262321 },
// { seq: 9, time: 112.281641 }
// ],
// stats: {
// min: 102.26232,
// avg: 119.10002450000002,
// max: 148.315887,
// stddev: 15.019185518208955
// },
// settings: {
// host: 'google.com',
// port: 443,
// attempts: 10
// }
// }
const isGoogleReachable = probe ( 'google.com' ) ;
console . log ( isGoogleReachable ) ;
// true const { ping , probe } = require ( 'tcp-ping-sync' ) ;
// Probe (does a single ping attempt succeed?)
const isRemoteReachable = probe (
( host = String ) , // (default: 'localhost')
( port = Number ) // (default: 80)
) ;
const isLocalReachable = probe (
( port = Number ) // (default: 80)
) ;
// Ping
const {
results = [
{
seq : Number , // Sequence [0...attempts-1]
time : Number // Response time
}
// ...
] ,
stats = {
min : Number , // Fastest response time
max : Number , // Slowest response time
avg : Number , // Average response time
stddev : Number // Standard deviation
} ,
settings : Object // Resolved arguments (host, port & attempts)
} = ping ( {
host : String , // Hostname/IP address (default: 'localhost')
port : Number , // Port number (default: 80)
attempts : Number // Number of attempts (default: 10)
} ) ; Contoh penggunaan lebih banyak dapat ditemukan dalam tes ( test.js ), yang dapat dijalankan dengan npm test . Untuk melaksanakan tes dengan output debug, jalankan npm run test:debug .
Perpustakaan ini memiliki ketergantungan opsional (NetLinkWrapper) yang perlu mengkompilasi modul asli. Jika platform Anda gagal mengkompilasinya, ketergantungan alternatif (tetapi lebih lambat) akan digunakan. Dalam hal ini, Anda hanya harus mempertimbangkan untuk menggunakan perpustakaan ini jika Anda benar -benar membutuhkan respons sinkron. Jika Async dapat diterima, Anda mungkin ingin menggunakan tcp-ping sebagai gantinya.
Pekerjaan ini terinspirasi oleh tcp-ping Adam Paszke (MIT; © 2014). Terima kasih juga kepada Jacob Fischer karena telah mencari cara mensimulasikan soket jaringan sinkron di node dan menerapkan solusi sebagai sinkronisasi-soket.