【问题标题】:port error in node.js Error: connect ECONNREFUSEDnode.js 中的端口错误错误:连接 ECONNREFUSED
【发布时间】:2017-01-26 23:42:11
【问题描述】:

我正在尝试在本地主机上运行应用程序,但不断收到以下错误:

Error: connect ECONNREFUSED
 at Object.exports._errnoException (util.js:1022:11)
 at exports._exceptionWithHostPort (util.js:1045:20)
 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1087:14)

我已经安装了 node.js 并执行了 cmd 命令:npm install 和 node index。我究竟做错了什么?我的索引文件代码如下:

var config = require('./config');

// ******************* WebSocket server ******************* 

var wsClients = {};
var WebSocket = require('ws');
var webSocketServer = new WebSocket.Server({ 'host': config.webSocketHost,'port': config.webSocketPort }, function(){
    console.log('WebSocket listening '+config.webSocketHost+' on port '+config.webSocketPort+'.');
});

webSocketServer.on('connection', function(cws) {
    var id = Math.random();
    wsClients[id] = cws;
    console.log("New connection " + id);

    cws.on('close', function() {
        console.log('Connection close ' + id);
        delete wsClients[id];
    });

    cws.on('error', function() {
        console.log('Connection error ' + id);
        delete wsClients[id];
    });
});

webSocketServer.on('message', function(data){
    console.log(data);
});

// ******************* Web server *******************

var express = require('express');
var app = express();
app.use(express.static('public'));

app.set('views', './views');
app.set('view engine', 'ejs');
app.disable('x-powered-by');

app.get('/', function (req, res) {
    res.render('index');
});

app.use(function(req, res, next) {
    res.status(404).send('Sorry cant find that!');
});

app.use(function(err, req, res, next) {
    console.error(err.stack);
    res.status(500).send('Something broke!');
});

var host = config.webHost || process.env.HOST || "127.0.0.1";
var port = config.webPort || process.env.PORT || 80;

app.listen(port, host, function () {
    console.log('WebServer listening '+config.webHost+' on port '+config.webPort+'.');
});

// ******************* Twitter bot *******************

var Twitter = require('twitter'); 
var client = new Twitter(config);
var stream = client.stream('user');

stream.on('data', function(event, webSocketServer) {
    for (var key in wsClients) {
        wsClients[key].send(JSON.stringify(event));
    }
}); 

stream.on('error', function(error) {
    throw error;
});

【问题讨论】:

    标签: node.js server port


    【解决方案1】:

    ECONNREFUSED 表示“服务器拒绝连接”。这可能是由多种原因造成的。

    在调试模式下运行您的服务器,在其上设置断点并检查连接请求是否到达服务器应用程序。

    如果连接请求没有到达服务器应用程序,请检查本地防火墙、网络等

    如果它到达服务器应用程序并命中断点,请逐步运行并查找实际关闭连接的代码行。

    【讨论】:

    • 我该怎么做?
    • 答案太复杂,提问者无法理解
    猜你喜欢
    • 1970-01-01
    • 2015-07-27
    • 2020-04-30
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多