让socket和http服务器监听同一个端口

时间:2016-11-16 09:14:29

标签: node.js sockets socket.io httpserver

我创建了一个网站,它必须与服务器进行实时通信。实时我的意思是,如果用户对某个主题进行投票,则所有连接的客户端必须看到新的平均投票。

我尝试了一些但我已经解决了问题:如何创建一个套接字服务器和一个使用Node.JS监听同一端口的HTTP服务器?我在下面运行代码,我有这个例外:

  

错误:听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 个答案:

答案 0 :(得分:4)

看起来你想要类似的东西:

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服务器的方式。

相关问题