2016-11-29 43 views
0

我有一個使用Node.js和WS包構建的非常簡單的WebSocket服務器。如何配置Ubuntu Server以使用Node.js進行WebSockets,並將Apache2用於其他所有內容?

var WebSocketServer = require('ws').Server 
var wss    = new WebSocketServer({ 
     port: 8080 
    }); 

wss.on('connection', function(client) { 

    client.on('message', function(message) { 
     console.log('received: %s', message); 
    }); 

    client.send('something'); 
}); 


// Console will print the message 
console.log('-=-=- Server running :8080 -=-=-'); 

當我嘗試使用簡單的客戶端連接時,連接超時。

<script> 
    var ws = new WebSocket('ws://192.168.1.75:8080'); 

    ws.onconnect = function(){ 
     console.log("Connected!"); 
    }; 


</script> 

服務器啓動/運行沒有錯誤,但客戶端總是超時連接。我是否需要配置iptables或apache以將端口8080上的流量發送到我寫的節點服務器?我想服務器會自動開始監聽端口8080.(如果這是一個成熟的問題,我會提前道歉)

+1

您的服務器在8080上偵聽,您的客戶端連接到1947 ... –

+0

這實際上是一個Typo。對於那個很抱歉。我嘗試更換端口,並忘記交換客戶端的問題。現在已經修復了。 –

回答

1

您不必做任何事情只要您沒有在同一端口上提供任何Apache流量服務,就可以使用Apache。您將只有兩個獨立的服務器同時在不同的端口上運行,並且必須相應地引導您的流量。

+0

我不退出SSH,所以我知道服務器正在運行.... –

+0

您是否試過通過不是您的websockets集成的節點提供簡單的網頁?我想知道,如果它可能是節點工作正常,但websockets有問題。 – DrewT

+0

當我第一次安裝Node.js時,我設置了一個非常簡單的Web服務器,它只輸出「IT WORKS!」在網頁中。我使用了proxypass .. .OH SH * T!我還有我的proxypass設置爲8080端口!它預先將端口8080上的流量傳遞給/ node! –

相關問題