tcp ping sync
1.0.0
TCP Ping Utility พร้อม API แบบซิงโครนัส
npm i tcp-ping-sync ห้องสมุดเปิดเผยสองวิธีคือ ping และ 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)
} ) ; ตัวอย่างการใช้งานเพิ่มเติมสามารถพบได้ในการทดสอบ ( test.js ) ซึ่งสามารถทำงานได้ด้วย npm test ในการดำเนินการทดสอบด้วยเอาต์พุตดีบั๊กให้เรียกใช้ npm run test:debug
ไลบรารีนี้มีการพึ่งพาตัวเลือก (NetLinkWrapper) ซึ่งจำเป็นต้องรวบรวมโมดูลเนทีฟ หากแพลตฟอร์มของคุณไม่สามารถรวบรวมได้การพึ่งพาทางเลือก (แต่ช้ากว่า) จะถูกใช้ ในกรณีนี้คุณควรพิจารณาใช้ไลบรารีนี้หากคุณ ต้องการการตอบกลับแบบซิงโครนัสจริงๆ หาก Async เป็นที่ยอมรับคุณอาจต้องการใช้ tcp-ping แทน
งานนี้ได้รับแรงบันดาลใจจาก tcp-ping ของ Adam Paszke (MIT; © 2014) ขอขอบคุณ Jacob Fischer สำหรับการหาวิธีจำลองซ็อกเก็ตเครือข่ายแบบซิงโครนัสในโหนดและใช้โซลูชันเป็นซิงค์ซ็อกเก็ต