socketio expressjs两个实现之间的区别

时间:2016-08-18 15:17:24

标签: node.js express socket.io

此实现之间是否有任何区别:

   this.app = express();
   this.httpServer = http.createServer(this.app);
   this.io = socket.listen(this.httpServer);

这一个:

    this.app = express();
    this.server = http.createServer(this.app);
    this.io = socket(this.server);

1 个答案:

答案 0 :(得分:0)

Nopers,第二个是速记。 :)

如果您要从快速架构导入/导出该功能,则提供第一个

似乎你的另一个问题是在此之后发布的,这仍然是相关的吗?

好的,让我们看看我做过的工作。我把我的套接字分成了一个配置文件,因为我的app.js变得杂乱无章。

app.use(express.static(path.join(__dirname, '/')));

app.use(express.static(path.join(__dirname, '/node_modules/')));

  var clients = {};

var server = http.createServer(app);
var io  = require('socket.io')(server);

require('./config/app.socket.js')(io);
server.listen(8001);
io.set("origins", "*:*");

所以,我删除了中间人并将服务器直接传递给socket.io import。然后,我将对io服务器的引用传递给我的app.socket.js文件并在端口8001上侦听服务器

这是我的app.socket.js初始化

module.exports = function(io){
  var clients = {};

   var sockets;

  io.on('connection', function (socket) {
  sockets = socket;

  socket.on(//your socket function)

}