我已经构建了一个基于this example的功能,目标是通过CLI连接到服务器或路由器或防火墙。连接和结果成功,但在调用函数end()
时,连接未关闭。
根据documentation,客户端方法end()
关闭连接并断开套接字。
end() - (void) - 断开套接字。
这是代码:
var Client = require('ssh2').Client;
var conn = new Client();
conn.on('ready', function (err) {
if (err) {
console.log('Error connecting... ' + err);
}
conn.exec(_command, function (err, stream) {
stream.write(_command);
if (err)
console.log('Error executing command... ' + err);
stream.on('data', function (data, stderr) {
if (stderr)
console.log('Error... ' + stderr);
else {
//some actions using the result string
}
}).on('exit', function (code, signal) {
console.log('Exited with code ' + code);
conn.end();
});
stream.end('\n');
});
})
.on('error', function (err) {
console.log(err);
}).on('end', function () {
console.log('Client :: ended');
conn.end();
})
.connect({
host: _host,
port: port,
username: username,
password: password
});
有什么问题或缺少某些东西?