javascript - Node js :Not able to catch 'error' in ssh2 connection on MacOSx/Linux

标签 javascript linux node.js macos libssh2

this.connection = new Connection(); //ssh2 connection
        async.waterfall([function(callback) {
            // some initialization code to connect
            }
        }], function(err, opts) {
            if (err) {
                callback({
                    message: 'Error during connecting to the device...',
                    detail: err
                }, false);
            } else {
                console.log('Connecting to ... ' + JSON.stringify(self.info));
                self.connection.on('ready', function() {
                    console.info('Connected... opening a shell...');
                    callback(null, true);
                }).on('error', function(err) {
                    console.error('Error during connecting to the device: ' + err);
                    callback({
                        message: 'Error during connecting to the device...',
                        detail: err
                    }, false);
                }).on('end', function() {
                    console.info("Connection ended...");
                }).on('close', function(hadError) {
                    console.info("Connection closed..." + (hadError ? " with error" : ""));
                }).connect(opts);
            }
        });

引用上面的代码,我正在使用 ssh2 连接连接到设备,一切正常..我正在获取“就绪”、“关闭”等控制台日志,但无法获取控制台日志当发生“错误”时。

我可以在 win7 32 位上捕获 on 'error' 事件,但不能在 MacOSx(10.9.5) 或 Linux(Ubuntu 12) 上捕获。当我强行结束与设备的连接(比如从我的系统中拔出 LAN 电缆)时,将触发 on 'error' 事件。

这是对 Mac/Linux w.r.t ssh2 模块的一些限制,还是我在捕获错误的过程中做错了什么。

任何指示都会非常有帮助。

Node js版本v0.10.29 ssh2版本v0.4.8

最佳答案

在github上提出问题 https://github.com/mscdex/ssh2/issues/364

解决方案是使用一个 keepaliveInterval,它的默认值为 0。所以尝试为我的应用程序保持最佳值并且它有效。

关于javascript - Node js :Not able to catch 'error' in ssh2 connection on MacOSx/Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046056/

相关文章:

linux - 将csv文件转换为mysql插入语句

node.js - npm安装错误。 Node .js?事件? Xcode?还是另一个问题?

node.js - 使用高 cpu 的 Socket.io Node 服务器

javascript - 输入标签 onChange 返回未定义的值

javascript - Mongoose动态mongodb集合名称

javascript - 如何在一张 map 上规划多个地点的路线?

c - 写入该文件时来自单个文件的多个缓冲输入流?

javascript - 从 API 检索到的重音字符在 ReactJS 中不起作用

C 程序尝试修改文本段中的位置

跨平台系统截图