javascript - 如何检查服务器和端口在 nodejs 中是否可用?

标签 javascript node.js

我的项目是用 Nodejs 编写的。我需要知道如何检查具有端口的 IP 是否可以连接到。

例如: 检查 example1.com 443 =>true ; 检查 example1.com 8080 =>false

谢谢

最佳答案

了解服务器/端口是否可用的唯一方法是尝试实际连接到它。如果您知道服务器响应 ping,则可以在服务器外运行 ping,但这只会告诉您主机是否正在运行并响应 ping,它不会直接告诉您是否要连接到服务器进程正在运行并接受连接。

真正知道它正在运行并接受连接的唯一方法是实际连接到它并报告它是否成功(注意这是一个异步操作):

var net = require('net');
var Promise = require('bluebird');

function checkConnection(host, port, timeout) {
    return new Promise(function(resolve, reject) {
        timeout = timeout || 10000;     // default of 10 seconds
        var timer = setTimeout(function() {
            reject("timeout");
            socket.end();
        }, timeout);
        var socket = net.createConnection(port, host, function() {
            clearTimeout(timer);
            resolve();
            socket.end();
        });
        socket.on('error', function(err) {
            clearTimeout(timer);
            reject(err);
        });
    });
}

checkConnection("example1.com", 8080).then(function() {
    // successful
}, function(err) {
    // error
})

关于javascript - 如何检查服务器和端口在 nodejs 中是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29069111/

相关文章:

javascript - ruby on Rails watch 函数的 Gon gem 监视所有变量

javascript - 如何让后退按钮返回 AngularJS 中的多个页面

node.js - HTML-PDF npm 在本地主机上工作但不在 IP 登台服务器上工作?

javascript - 在 react native 中添加 native 基本导入时无法加载包错误

javascript - Postgres 和 NodeJs api 中的 404 Not found 错误(可能重复)

javascript - 如何解析 ajax 返回的字符串的 JSON 列表?

javascript - 打印不适合纸张的主页的内容页

javascript - 使用 jQuery,如何获取通过选择的文本找到的第一个父元素?

javascript - 无法将对象转换为 Selenium 中的字符串

node.js - Socket.io 404 错误