2016-11-16 302 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服务器。

相关问题