Node.js 正在使用节点JS中的ssh2保持连接的活动状态
我构建了一个基于的功能,目标是通过CLI连接到服务器、路由器或防火墙。连接和结果成功,但调用函数Node.js 正在使用节点JS中的ssh2保持连接的活动状态,node.js,ssh,Node.js,Ssh,我构建了一个基于的功能,目标是通过CLI连接到服务器、路由器或防火墙。连接和结果成功,但调用函数end()时连接未关闭 根据,客户端方法end()关闭连接并断开套接字 end()-(无效)-断开插座的连接 代码如下: var Client = require('ssh2').Client; var conn = new Client(); conn.on('ready', function (err) { if (err) { console.log('Error co
end()
时连接未关闭
根据,客户端方法end()
关闭连接并断开套接字
end()-(无效)-断开插座的连接
代码如下:
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
});
出了什么问题或缺少了什么?试试现代版的
ssh2
。您链接到的示例和文件集适用于较旧的、不受支持的分支。此外,“正常运行时间”命令不从stdin读取,因此stream.write('uptime')
和stream.end()
是不必要的。谢谢@mscdex,我想我有了最新版本的ssh2
。对于你的第二个评论,你说的是对的,这只是一个例子,我正在执行的命令之一是在防火墙中显示系统信息,为此我需要编写流。你能用npm ls--depth=0
验证ssh2
的安装版本吗?示例代码仍然过时,尤其是'data'
处理程序。stdout和stderr现在是独立的流。@mscdex我已经使用npm页面模块的示例更新了代码。问题仍然存在,感谢您的帮助。