2017-01-26 234 views
0

我想在本地主機上運行的應用程序,但不斷收到以下錯誤:端口錯誤:連接ECONNREFUSED

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安裝和節點索引。我究竟做錯了什麼?我的代碼遵循索引文件:

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; 
}); 

回答

2

ECONNREFUSED意思是「服務器拒絕連接」。這可能是由於多種原因。

以調試模式運行您的服務器,在其上設置斷點並檢查連接請求是否到達服務器應用程序。

如果連接請求不會到達服務器應用程序,檢查本地防火牆,網絡等

如果到達服務器應用程序和命中斷點,跑一步一步找到哪一行代碼實際上是關閉連接。

+0

我該怎麼做? – user1957076

相關問題