2016-11-16 86 views
0

我製作了一個網站,它必須與服務器進行實時通信。實時我的意思是,如果用戶對某個主題進行投票,所有關聯的客戶端都必須看到新的平均投票數。讓socket和http服務器監聽同一個端口

我試過一些,但我有這個問題:如何創建一個套接字服務器和一個HTTP服務器,使用Node.JS監聽同一個端口?據我運行下面的代碼,我這有例外:

Error: listen EADDRINUSE

這裏是我的服務器代碼:

let port = 8080; 

const httpServer = require('http'), 
     app = require('express')(), 
     socketServer = http.Server(app), 
     io = require('socket.io')(httpServer); 

httpServer.createServer(function (req, res) { 
    console.log('http server created on 8080'); 
}).listen(port); 

socketServer.listen(port, function(){ 
    console.log('listening on 8080'); 
}); 

在此先感謝

+1

你不能。這沒有意義。 TCP可以防止你以這種方式在腳下射擊自己。 – EJP

回答

2

它看起來像你想類似這樣:

const port = 8080; 

let app = require('express')(); 
let server = app.listen(port); 
let io  = require('socket.io')(server); 

這將Express應用程序和socket.io服務器連接到相同的HTTP服務器(這是由app.listen()返回)。這就是如何在同一端口上運行應用程序和socket.io服務器。

相關問題