2016-12-07 104 views
0

我想設置一個工作nodeJS socket.io服務器與快遞。然而,我的回頭率這個錯誤:套接字EADDRINUSE錯誤

Error: listen EADDRINUSE :::80 

我已經在這個網站它告訴我要尋找並殺死已在運行的過程中嘗試過其他的解決方案,但grep命令返回任何正在運行的進程。我只能假設錯誤是我的設置代碼:

var express = require("express"), 
    http = require('http'); 
var app = express(); 
var server = http.createServer(app) 
var io = require('socket.io')(server, {path: '/folder/socket.io'}).listen(server); 
app.get("/folder/", function(req, res){ 
    res.sendFile(__dirname + "/folder/client/index.html"); 
}); 
app.use("/folder/client", express.static(__dirname + "/folder/client")); 
app.listen(80); 

注意,因爲我想節點上的一個子目錄,而不是主路徑/運行我指定的路徑folder。有什麼我做錯了嗎?

回答

0

您應該使用

server.listen(80); 

,而不是

app.listen(80); 

希望幫助!

0

我做我的雲實例是我重定向80端口3000端口使用這個命令:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000 
+0

我剛剛運行此命令,它已重定向的所有80個端口連接到端口3000上我的網絡服務器,這是有問題的,因爲我有我的服務器上運行的其他項目都使用端口80.我想知道是否有辦法扭轉這種情況? – DaemonOfTheWest