首页 > 解决方案 > 在 Node JS 中使用 ssh2 保持连接保持活动状态

问题描述

我基于这个例子构建了一个函数,目标是通过 CLI 连接到服务器或路由器或防火墙。连接和结果都是成功的,但是调用函数时连接没有被关闭end()

根据文档,客户端方法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
});

有什么问题或缺少什么?

标签: node.jsssh

解决方案


推荐阅读