Я написал ниже код node.js, чтобы открыть соединение TLS с указанным портом и хостом.
var tls = require('tls');
(() => {
var output = {};
const client = tls.connect({
port: 5060,
host: "173.99.99.99",
}, () => {
console.log('connected to server!');
var cert = client.getPeerCertificate(true);
console.log("Connection success!!!");
});
client.setTimeout(1000);
client.on('timeout',()=>{
console.log("Requested timed out!");
client.end();
})
client.on('data', (data) => {
console.log("Data::",data);
client.end();
});
client.on('error', (err) => {
console.log('Error',err);
client.end();
});
client.on('end', (op) => {
client.destroy();
console.log('disconnected from server',op);
});
})();
И получить вывод, как показано ниже.
Requested timed out!
disconnected from server undefined
Error { Error: socket hang up
at TLSSocket.onConnectEnd (_tls_wrap.js:1083:19)
at Object.onceWrapper (events.js:272:13)
at TLSSocket.emit (events.js:185:15)
at endReadableNT (_stream_readable.js:1106:12)
at process._tickCallback (internal/process/next_tick.js:178:19)
code: 'ECONNRESET',
path: undefined,
host: '173.99.99.99',
port: 5060,
localAddress: undefined }
Ожидается, чтосначала он выполняет timeout
, затем end
события.Но событие error
также сработало.
Как я могу убедиться, что код не вызовет события end
и error
при timeout
.